ImageDownloader.zip


다운로드에는 닷넷 프레임워크가 필요합니다.


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


https://github.com/nipa0711/SequenceImageDownloader


소스코드 입니다.


C# + WPF로 개발되었습니다.





https://www.clien.net/service/board/kin/12322778 의 글을 보고 개발 시작했습니다.



웹상의 순차적인 번호를 가진 이미지들을 다운로드 가능합니다.

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

Sequence Image Downloader  (0) 2018.07.11
모자이크 이미지 만들기  (0) 2017.04.01
Network Bingo game server and client  (0) 2017.01.31
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

mosaic photo.zip




이미지 불러와서, MS Computer Vision 애저 서버에서 분석하고,

 

그 결과 값을 받아온 뒤,

 

신뢰성 높은 태그 중 랜덤으로 하나 뽑은 후에,

 

플리커에서 해당 태그로 사진 검색하여 나온 사진들을

 

랜덤으로 조각조각 배치합니다.





https://github.com/nipa0711/mosaic-photo




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

Sequence Image Downloader  (0) 2018.07.11
모자이크 이미지 만들기  (0) 2017.04.01
Network Bingo game server and client  (0) 2017.01.31
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

서버와 클라이언트로 구성되어 있으며, C#을 이용하여 제작되었습니다.


서버는 콘솔 환경이며, 클라이언트는 WPF를 이용한 GUI환경입니다.




1:1 네트워크 플레이를 가정하고 개발되었습니다.






클라이언트 최초 실행 시.




서버 최초 실행 시의 모습입니다.




서버와의 통신을 거쳐서 접속하게 됩니다.





또 다른 클라이언트를 이용하여 접속해봤습니다.










위 영상은 실제로 친구와 네트워크를 통해 플레이 해 본 영상입니다.





클라이언트 소스
https://github.com/nipa0711/BingoClient

서버 소스
https://github.com/nipa0711/BingoServer






클라이언트에서 키 값을 서버에 전달하여, 서버에서 해당 키 값을 다시 클라이언트로 넘겨주며, 동시에 빙고판정도 서버에서 처리하게 됩니다.


이는 기본적으로 네트워크 환경의 게임에서는 클라이언트는 믿을 것이 못 된다는 선배들의 조언에 따라 개발하였기 때문입니다.


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

Sequence Image Downloader  (0) 2018.07.11
모자이크 이미지 만들기  (0) 2017.04.01
Network Bingo game server and client  (0) 2017.01.31
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

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 를 이용하여 개발되었습니다.



외관은 위와 같습니다.

이전에 C# 끼리의 소켓통신 경험을 바탕으로, 새로 개발했습니다.

목적은 안드로이드 휴대폰과 컴퓨터 사이의 파일 전송입니다.

케이블 꼽고 복사하는게 생각보다 귀찮은 짓이라서요.

WIFI기반으로 내부네트워크에서만 동작할겁니다.









윈도우용 파일 다운

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


안드로이드 어플 다운

https://play.google.com/store/apps/details?id=net.nipa0711.www.phone2mycomputer





(안드로이드 어플 실행 화면)




아직 미구현된 기능들이 많습니다.

최종적으로는 자동적으로 컴퓨터와 동기화하는 그런걸 생각하고 있지만, 갈 길이 머네요.






C# 쪽은 사실상 큰 문제가 없고, 보내는 안드로이드쪽에서, 대용량 파일 처리가 안되어 있어서 비디오등의 용량 큰 파일 전송시 어플이 죽는 현상이 있습니다.

jpg등의 이미지 파일은 200장 까지는 문제가 없네요. (장당 2mb 이내 기준)

파일전송상의 알려진 문제 해결완료.




C# 으로 작성된 만큼 닷넷 프레임웍 오류가 뜰 수 있습니다.






07/06
프로그램 안죽는 현상 문제 해결


파일다운 - 
https://drive.google.com/file/d/0B3mC_hyBIvc8UnlGQTJpclZ4cmc/view?usp=sharing



06/22 추가내용

내부 IP 소스를 변경해서 잘 잡도록 했습니다.
최소한 제 컴퓨터에서는 잘 되네요.

최소화시 트레이 아이콘으로 가게 추가.
다운경로 변경시 변경된것을 기억하도록 변경.
컴퓨터 시작시 프로그램 시작 가능하게 변경.



WPF가 생각외로 재밌고 편하네요.
뭐 여기저기 소스 복붙하고 있다는 한계가 있긴 하지만,
조금씩 새로운 것을 경험해보고 있다는데 의의가 있지 않나 생각해봅니다.

다만 여전히 외부하고 통신은 안되고 있고..
쓰레드 사용에 있어서 애로사항이 있기에 (잘 모름 ㅠㅠ), 이쪽에 있어서는 문제가 해결되고 있진 않네요.





06/20 추가내용

내부, 외부 IP를 보여줍니다.
다만, 내부IP의 경우 제대로 못 잡는 경우가 있습니다.

로그 삭제 기능 추가.
포트번호 기능 추가.
로그 내용 상세하게 변경.

아직 외부에서 접근은 제대로 되지 않는 거 같습니다.
공유기나 방화벽 등등.. 변수가 좀 되는지라 정확한 원인은 잘 모르겠네요.
내부에서는 잘 되는 것 같습니다.




이런 느낌입니다.
노트북과 데스크탑으로 테스트 해봤으며, 내부 IP 연결상황 입니다.








뇌를 자극하는 C# 4.0 프로그래밍 책 가장 뒤의 예제가 파일전송 프로그램입니다.

CLI 환경이였는데, 이것을 WPF 를 이용하여 GUI로 확장하였습니다.

쉽게 될 줄 알았는데, 이 수준으로 옮기는 것도 버거웠네요 ㅜㅜ..






상대방도 프로그램이 실행되어 있는 상태에서 상대방 ip를 치고 파일 전송시 



이렇게 창을 띄우고, 확인시 진행됩니다.





전송자체는 잘 되지만, 여러개 파일 보낼때의 처리와 (매 파일마다 전송확인하는 문제), 용량 높은 것은 그냥 뻗는 문제점이 있습니다.

조금씩 고치면서 확장해볼 계획입니다.

로컬네트워크에서만 확인해봤습니다.




TCP/IP 소켓프로그래밍과, 파일전송 프로토콜에 대해서 접해볼 수 있었는 좋은 경험이였습니다.
무엇보다 MFC대비 WPF는 상당히 편하다는 것을 체감했습니다.

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

제안서 제작 기간 : 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