본문 바로가기

Training your own Detector 1. 학습할 positive 이미지와 negative 이미지를 준비 2. person.info와 bg.txt 파일 생성 - person.info(postive 이미지의 경로가 저장되어 있음) ex) pos/pos00001.pgm 1 0 0 48 96 pos/pos00002.pgm 1 0 0 48 96 pos/pos00003.pgm 1 0 0 48 96 ..... pos/pos00001.pgm 1 0 0 48 96 -> 1 : 학습할 객체의 개수, 0 0 : x와 y 좌표(좌측상단 기준), 48 96 : (width, height) - bg.txt (negative 이미지들의 경로가 저장되어 있음) ex) neg/neg00001.pgm neg/neg00002.pgm neg/neg00003.pgm ....... 더보기
Linux에서 Droidcam 설치 및 안드로이드캠 연결 Linux 터미널 창을 오픈한 후, 아래의 코드를 한줄씩 실행한다. cd /tmp/ sudo apt-get install linux-headers-`uname -r` bits=`getconf LONG_BIT` wget https://www.dev47apps.com/files/600/droidcam-${bits}bit.tar.bz2 32비트인 경우: [[ ${bits} -eq 32 ]] && checksum=c8baa64b3f1e1d9b9051ece23474e58f 64비트인 경우: [[ ${bits} -eq 64 ]] && checksum=ad14437f0556d80f981d1027766afe29 echo "${checksum} droidcam-${bits}bit.tar.bz2" | md5sum -c -.. 더보기
OpenCV 참고 사이트 - OpenCV Haar/cascade training 튜토리얼 http://darkpgmr.tistory.com/70 - Daimler Mono Ped. Detection Benchmark Data Set http://www.gavrila.net/Research/Pedestrian_Detection/Daimler_Pedestrian_Benchmark_D/Daimler_Mono_Ped__Detection_Be/daimler_mono_ped__detection_be.html - Caltech Pedestrian Detection Benchmark http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/ - OpenCV 및 임베디드 관련 블로그 we.. 더보기
이미지 학습 절차 1. 포지티브 샘플을 준비합니다. 2. 이 샘플들을 일정한 크기로 변환합니다.(사실 opencv 내에 있는 트레이닝 예제 프로그램을 이용하면 지가 알아서 변환합니다) 3. 일정한 크기로 변환된 샘플들을 묶어서 vec파일로 만듭니다.(이 과정도 트레이닝 예제를 이용하면 지가 알아서 합니다) 4. 네거티브 이미지들을 준비합니다. 5. 포지티브vec파일과 네거티브이미지 파일들을 이용해 트레이닝합니다. 더보기
Mat이란? Mat은 이미지 저장소 1. 기초 Open CV 에서는 저장소를 Mat이라 함. (Matrix) 구버전 기준으로 OpenCV를 접하신 분들은 IplImage를 아실겁니다. 둘다 이지지를 저장 및 관리하는 역할은 같습니다. 하지만 IplImage는 수동으로 메모리 배치와 해체를 통해 메모리 관리를 해줘야 하지만, Mat 은 하나의 객체, 즉 class로서 자체적으로 메모리 관리가 가능합니다. IplImage 가 사라진것은 아니나, Open CV 개발자들은 이를 권장하지 않고 Mat 사용을 권장하고 있습니다. Mat은 이미지를 저장하는 하나의 class이고, '헤더'와 '데이터 포인터'로 구성되어 있습니다. -헤더 : 저장되 있는 이미지에 대한 정보를 담는 곳. -데이터 포인터 : 이미지 하나하나의 픽셀이 .. 더보기
Assembly] 명령어 MOV Move 데이터 이동 (전송) PUSH Push 오퍼랜드의 내용을 스택에 쌓는다 POP Pop 스택으로부터 값을 뽑아낸다. XCHG Exchange Register/memory with Register 첫 번째 오퍼랜드와 두 번째 오퍼랜드 교환 IN Input from AL/AX to Fixed port 오퍼랜드로 지시된 포트로부터 AX에 데이터 입력 OUT Output from AL/AX to Fixed port 오퍼랜드가 지시한 포트로 AX의 데이터 출력 XLAT Translate byte to AL BX:AL이 지시한 데이블의 내용을 AL로 로드 LEA Load Effective Address to Register 메모리의 오프셋값을 레지스터로 로드 LDS Load Pointer to DS .. 더보기
계산기 코드 section .data msg1 db 'Input num1 : ' len1 equ $ -msg1 msg2 db 'Input Operator : ' len2 equ $ -msg2 msg3 db 'Input num3 : ' len3 equ $ -msg3 section .bss op resb 1 num1 resb 5 num2 resb 5 result resb 5 section .text global _start _start: mov eax, 4 mov ebx, 1 mov ecx, msg1 mov edx, len1 int 0x80 mov eax, 3 mov ebx, 1 mov ecx, num1 mov edx, 5 int 0x80 mov eax, 4 mov ebx, 1 mov ecx, msg3 mov edx, .. 더보기
리눅스] nasm 설치 및 컴파일 명령어 -nasm 설치sudo apt-get install nasm -컴파일nasm -f elf64 파일명.asm -o 파일명.o ld 파일명.o -o 실행파일명 더보기
링크드리스트 코드 #include "list.h" #include List *head, *tail; main(){ List *find; init_list();// 자료구조 초기화 insert_list(3); insert_list(7); print_list(); delete_list(); print_list(); find=find_list(3); if(find !=NULL) puts("찾음"); else puts("못찾음"); ordered_list(1); print_list(); } ------------------------------------------------------------------------------------ #include "list.h" #include List *head,*tail; void .. 더보기
링크드리스트 더보기