728x90 Python 13 Yolov3을 이용한 Unity 사물인식 제작 정리(5) Yolov3을 이용한 Unity 사물인식 제작 정리(5) 8. Unity의 App 설정 이제 지난번 훈련을 마치고 최종 컨버팅했던 onnx 파일과 label 텍스트를 Unity에서 사용할 차례이다. 처음부터 모든 코드를 다 만드는 것이 아닌 공개된 git을 활용하여 진행할 것이다.다음의 깃을 clone 하거나 다운로드하여 준비한다. 아주 잘 되어 있으며 classifier 방식과 detecting 방식이 함께 있다.GitHub - Syn-McJ/TFClassify-Unity-Barracuda: An example of using Tensorflow and ONNX models with Unity Barracuda inference engine for image classification and objec.. 개발 관련/SW, App 관련 2024. 11. 14. Yolov3을 이용한 Unity 사물인식 제작 정리(4) Yolov3을 이용한 Unity 사물인식 제작 정리(4) 7. ONNX 컨버팅 이제 다음 단계는 onnx로 컨버팅 하는 사항이다. 최근에야 비로소 unity에서 인식 가능하도록 진행되었다. 아마도 상위 버전의 프로그램들을 사용했다면 더 빨리 진행되었을 것이다.우선 Darknet의 실행파일이 있는 폴더에서 backup 폴더로 가보면 가중치 결과 파일이 저장되어 있을 것이다. steps 값이 있어 여러 파일이 생성되어 있겠지만 실제적으로 사용할 파일은 yolov3-tiny_final.weights 가중치 파일이다. 일단 파일은 그대로 두고 아래의 git에서 keras-yolo3을 가져온다.즉, Darknet의 weights(가중치) 파일을 keras 모델로 변형(재훈련?)하는 것이다. 여기서 그 형식을 Co.. 개발 관련/SW, App 관련 2024. 11. 12. Yolov3을 이용한 Unity 사물인식 제작 정리(3) Yolov3을 이용한 Unity 사물인식 제작 정리(3) 5. 커스텀 데이터셋 준비 보통의 Yolo를 쓰면 미리 훈련된 모델들을 가지고 많이들 사용한다. 다양한 훈련 모델들이 있어서 플랫폼에 맞춰서 적절하게 사용되고 있다. 하지만 본인이 여기서 다루고자 하는 것은 원하는 데이터를 기반으로 훈련하는 것이다. 이게 가장 큰 목적이다.로봇이 플라스틱 병이나 우유팩 같은 것을 인식하여 물건을 잡고 이를 분리수거함으로 운반하여 넣는 것이 최초의 목적으로 시작하게 되었다. 이는 지금도 진행 중이다. 훈련데이터에서 준비되어할 것은 다음과 같다. Darknet 실행파일이 있는 위치에 data 폴더가 있다. obj 폴더에 훈련할 이미지와 label 정보 텍스트가 들어가야 한다. 하나의 이미지당 하나의 label 정보 텍.. 개발 관련/SW, App 관련 2024. 11. 11. Yolov3을 이용한 Unity 사물인식 제작 정리(2) Yolov3을 이용한 Unity 사물인식 제작 정리(2) 4. Darknet 및 Unity 설치우선 Unity부터 설치해 준다. 현재는 Unity6까지 해서 최신 버전들이 많겠지만 진행하고자 하는 사항은 Unity의 barracuda를 이용한 것이므로 낮은 버전을 다운로드하여야 한다. 다음의 Unity Archive에서 2018.4.xx를 다운 받는다. 다만, barracuda를 사용하는 것이기 때문에 더 상위버전인 unity 2019도 잘 될 것 같다. 혹시나 그다음 버전들이 Unity plugin package로 barracuda를 지원한다면 될 것도 같다. 하지만 확인을 못해봐서 현재는 알 수 없다. 다운로드 아카이브 다운로드 아카이브다운로드 아카이브unity.com 다운을 받게 되면 Unity .. 개발 관련/SW, App 관련 2024. 11. 10. Yolov3을 이용한 Unity 사물인식 제작 정리(1) Yolov3을 이용한 Unity 사물인식 제작 정리(1) 그동안에 Yolo를 이용하여 사물인식을 제작한 모든 과정을 기록으로 남기고자 한다. 분명 시간이 지나면 다 까먹을 것이다.물론 상위버전들도 있고 더 쉽게 구현이 가능할 수 있으나 주어진 환경과 프로그램 버전의 제약으로 Yolov3으로 진행하게 되었다. 진행은 최종적인 플랫폼인 Android OS의 App에서 작동할 것이므로 Yolov3-tiny 버전으로 할 것이지만 일부 수정 및 보완을 거치게 되면 Yolov2, Yolov2-tiny, Yolov3, Yolov3-tiny에서 호환되어 작동할 수 있다. 결과적으로 Unity의 환경의 App 제작에 따른다. 목차는 다음과 같다.1. 시스템 확인 및 필수 소프트웨어 설치2. 환경설정3. Python(An.. 개발 관련/SW, App 관련 2024. 11. 8. Darknet 사물인식 진행 상황 Darknet 사물인식 진행 상황 지난번 커스텀데이터로 Darknet 훈련을 통해 가중치(.weights) 파일을 얻고 이 가중치를 통한 테스트는 정상적으로 잘되었었다. 문제는 이 가중치 파일을 다이렉트로 onnx 컨버팅이 되지 않아 다시 keras의 .h로 변환한 뒤 onnx로 변환했다. 그러나 변환한 keras로도 훈련이 되지 않았고 이를 변환한 onnx 파일을 Unity에서 적용하여 Android 앱으로 빌드하여 사물인식을 시도하였으나 그것도 제대로 된 Bounding Box 출력이 되지 않았다. 따라서 여기에서의 문제는 바로 keras의 .h로 변환하는데서 문제가 발생하는 것이라 확신했다.참고한 yad2k 의 이슈에서도 이 문제가 제기되었고 다른 방법으로 해결했다고 한 사항이 있으나 내게는 적용.. 개발 관련/SW, App 관련 2024. 9. 26. Python으로 이미지 사이즈 줄이기 Python으로 이미지 사이즈 줄이기 일반적인 이미지 관리툴을 사용하면 쉽게 다양하게 변경할 수 있긴 하지만 간단한 사항은 파이썬으로도 쉽게 변환할 수 있다. 먼저 pillow 라이브러리를 설치해 줘야 한다. pip install pillow 하면 금방 바로 설치된다. 변경한 이미지는 한 장이 아닌 폴더 내의 전체 이미지들의 사이즈를 변경하고자 하는 것이다. 굳이 한 장만 변경할 일은 별로 없을 것이다. 그러면 아래의 코드를 Image_resize.py로 저장하자.1234567891011121314151617from PIL import Imageimport osimport glob input_path = "./imageOriginal/*.jpg"file_list = [file for file in glo.. 개발 관련/SW, App 관련 2024. 9. 7. keras의 HDF5(.h)로 변환시 utf-8 오류 해결방법 Darknet 훈련을 통한 가중치(.weights) 파일을 kera hdf5 포맷 변환시 아래와 같은 오류가 발생했다.model_config = json.loads(model_config.decode('utf-8')) 이는 패키지의 버전차이로 발생하는 것이며 간단하게 하위 버전으로 설치하면 해결된다. pip uninstall h5py pip install hypy==2.10.0 그러면 오류를 해결할 수 있다. 개발 관련/SW, App 관련 2024. 9. 5. Darknet의 weights를 onnx로 컨버팅 지난번부터 계속 괴롭혀 왔던 onnx 컨버팅을 진행하게 되었다. 시간이 오래 걸린 이유는 고집이 좀 있었는데 darknet의 커스텀 데이터셋 훈련결과의 weights(가중치)를 바로 onnx로 컨버팅 하기 위한 방법을 찾기 위한 것이었기 때문이다. 또한 이를 unity 2018 버전에서 사용하기 위해서는 Yolo v3 이하에서만 사용할 수 있다. Unity 2018의 barracuda가 거기까지만 지원하기 때문이다. 거기다 python과 필요한 패키지의 지원 버전이 맞지 않으면 오류를 쏟아내고 그 원인을 해결하기 위한 방법 또한 구글링을 해도 각기 다 다른 원인이 많아 해결하기가 너무나 까다로웠다. 버전 특성과 환경상 거의 안된다고 보면 된다. 현재는 Yolo v8인가 까지 나온 상태라 더욱 그렇다. 그.. 개발 관련/SW, App 관련 2024. 8. 21. 아두이노 로봇제작 상황 이 프로젝트를 구상한 지 거의 1년이 다 되어 간다. 시간이 참 빨리 흘러 가고 있다. 단지 이 프로젝트는 먼저 1차적인 프로토타입을 만드는 것인데 너무나도 더디게 진행되는 것 같다. 현생을 하면서 틈나는대로 하고 있지만 진도가 너무 느리다.마음먹고 시간을 좀더 투자한다면 적어도 2~3개월 이내에는 프로토타입을 거의 완성할 것인데 말이다.프로토타입에 너무 정성을 들이는 게 아닌가 한다. 따라서 이번 프로토타입은 이번 8월내에 마무리를 해야겠다. 프로그램적인 부분은 좀 미흡할 것 같으나 본격적인 프로젝트에서 이를 보완하여 진행해야겠다. 다음번엔 아예 3D 프린터를 구입하는 게 여러모로 빠르고 좋을 것 같다. 진행이 더딘 가장 큰 원인은 아마도 여러 가지 오류에 대한 해결이 늦어지는 탓일 것이다.특히나 p.. 개발 관련/프로젝트 2024. 8. 1. 728x90 이전 1 2 다음