OpenCV 와 MFC를 이용한 본격적인 필터 프로그램을 제작하기 시작했습니다.

https://drive.google.com/open?id=0B3mC_hyBIvc8dXk1bXN4QW1sYmc


이전 버전에 비해, 본격적인 프로그램의 냄새가 살짝 나기 시작했습니다.

프로그램은 파일 열고 필터 선택 후 저장하는 아주 단순한 구성으로 되어 있으며,
가볍게 갖고 노는 용도로 사용을 권장합니다.
니파 필터 A는 원본 + 색상에 대한 균등화 이며 (비율로 구분됩니다)
니파 필터 B는 원본 + 밝기에 대한 균등화 입니다.


 
 
알려진 오류
 
//////////////////
 
https://www.microsoft.com/ko-kr/download/details.aspx?id=40784
msvcp120.dll 오류가 나실 경우,
Visual Studio 2013용 Visual C++ 재배포 가능 패키지를 설치하셔야 될 수도 있습니다.
 
//////////////////




프로그램 실행 화면입니다.
 


이미지를 넣은 화면입니다.
 
 
 
원본 이미지와, YCrCb 에 의한 히스토그램 균등화, RGB에 의한 히스토그램 균등화를 실행시키는 간단한 프로그램입니다.
 
MFC와 OpenCV 를 이용한 배포가능성에 의의가 있습니다 ㅇㅅㅇ..
 
 
 
이미지 로딩하는법을 알아낸다고 헤맨 시간만 ㄷㄷㄷ
 
MFC를 처음하는 만큼 어려웠습니다 ㅠㅠ..
 





다운받기
 




OpenCV 3.0 의 Seamless Cloning 이라는 기능을 이용하여 개발한
 
Simple 이미지 합성 프로그램 입니다.
 
 
 
 
 
MFC에서 마우스 클릭 마다 합성될 이미지의 위치를 변경하는 기능 구현에 애를 먹었네요.
 
 
 
 
 
p.s 배경이미지는 합성될 이미지 보다 더 커야 됩니다.
 
현재로서는 합성될 이미지의 배경이 단순하고, 하얀색일수록 제대로 된 결과물이 나옵니다.
 
 
 
 
 
간단한 예시를 든다면
 
구글에서 갖고 온, 두 이미지를 이용하여,
 


합성해보면



이런식으로 만들어 줍니다.





http://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp/

이 글을 참조하여 개발하였습니다.





프로그램 다운

https://drive.google.com/file/d/0B3mC_hyBIvc8cExDRFdtVkZQTnc/view?usp=sharing




Cascade 학습을 할려면 먼저 인식하고자 하는 특정 물체의 이미지들이 필요합니다.

1. 이미지 안에서 물체의 좌표를 얻는 방법
2. 이미지 자체에 물체만 남겨놓는 방법

이 두가지를 생각했고, 2번 방법이 더 편할것이라 생각하였습니다.
일단 이미지 자체에 물체만 남겨놓았다면, 남은 것은 이미지 해상도를 구하면 그게 특정 물체의 좌표를 가리키는 것이니까요.

positive 와 negative 를 선택할 수 있으며,
각각 positives.txt 와 negatives.txt 파일을 생성합니다.

positives.txt 파일에는 이미지 경로, 1 0 0 이미지 폭, 이미지 높이 를 출력하며,
negatives.txt 파일에는 이미지 경로만 출력하게 됩니다.



이런 프로그램이 없지는 않을텐데, 찾는 수고 보다, 제작하는 게 더 빠를꺼 같아서 만들었습니다;;



https://github.com/nipa0711/PrintImageWH

에서 소스코드를 보실 수 있으며, 자유롭게 이용가능합니다.

OpenCV 를 이용하여 개발되었습니다.


'Project > Personal' 카테고리의 다른 글

Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23
Phone to my computer  (0) 2016.09.23
파일전송 프로그램  (0) 2016.09.23

인공지능 과목 마지막 프로젝트

제안서 제작 기간 : 2016/11/12 ~ 11/24
PPT 제안서 : https://drive.google.com/file/d/0B3mC_hyBIvc8SXZmUzB6MUpWVms/view?usp=sharing

프로젝트 제작 기간 : 2016/11/24 ~ 12/08
PPT 결과 보고서 : https://drive.google.com/file/d/0B3mC_hyBIvc8aWFISEtnT016UG8/view?usp=sharing

소스코드 : https://github.com/nipa0711/Motorcycle-detection

테스트 데이터 : https://drive.google.com/file/d/0B3mC_hyBIvc8UHhxUUFnd19ndzQ/view?usp=sharing



최종 결과 영상



/////////////////////////////////////////////////////////////////////////////////////////////

수정 날짜 : 12/07

동영상을 실행하고, 동영상 내부에서 오토바이를 인식하도록 만들었습니다.

다만, 성능의 문제로 인하여 동영상 해상도는 낮은 것을 써야 될 수도 있습니다.

제 노트북 기준으로 HD 영상은 힘들더군요.



cascade 에 관해서인데, 인식률과 오인식률이 비례하는 듯한 느낌입니다.

높은 인식률은 그 만큼 높은 오인식률을 보여주더군요.

어떤걸 하는게 맞을까 고민하다가, 높은 인식률을 선택했습니다.

확실한것은 cascade의 학습량에 따라서 좀 더 개선될 여지는 충분합니다만,

일단 목표한 것은 달성했다고 볼 수 있겠습니다.



사실 이 이미지는, 당연히 인식이 되지 않을 것으로 예측하고 받은 이미지인데,

인식을 해 버리더군요.





최종본 다운로드 :
https://drive.google.com/file/d/0B3mC_hyBIvc8SXZmUzB6MUpWVms/view?usp=sharing






/////////////////////////////////////////////////////////////////////////////////////////////

수정 날짜 : 12/02

OpenCV 를 활용하여 제작하고 있습니다.




원본 입력시





아래와 같이 찾습니다.





현재 일부 샘플에 대해서는 원하는 결과를 바로 찾아주는 수준까지는 왔지만,

컴퓨터 사양의 문제상, 많은 샘플을 학습시킬 수가 없으며,

적은 샘플로는 여전히 오인식하는 경우가 많습니다.


버전1 다운로드 :
https://drive.google.com/file/d/0B3mC_hyBIvc8N3dpOG5PdW9jbTA/view?usp=sharing

이미지 처리만 가능합니다.

+ Recent posts