인프런 커뮤니티 질문&답변

이근영님의 프로필 이미지

작성한 질문수

[인공지능 컴퓨터비전] 20장의 사진으로 딥러닝 모델 만들기

나만의 인공지능 확인하기

python에서 실행

작성

·

895

0

python으로 코딩을 하여 yolo를 실행시키는 방식과 카메라가 아닌 컴퓨터 화면을 받아오는 방법이 궁금합니다 또한 그 값이 어디에 저장되는지 궁금합니다

답변 3

0

Q쌤님의 프로필 이미지
Q쌤
지식공유자

우선 해당 변환 파일은 runs/detect/exp/ 안에 생성되게 됩니다
원하시는 방법이 

파이썬 내에서 이미지를 받아오고(캡처하고) 해당 이미지를 바로 바운딩 박스된 결과값으로 내보내고 싶으신게 맞는지요?

새로운 translator.py 파일을 만들고 해당 파일은 yolov5폴더안에 넣고 시작했습니다.

우선 코드 설명 드리면 생성하신 이미지가 저장되었다는 가정하에 설명드리겠습니다.

해당 이미지의 절대 경로를 변수에 저장하였고

명령어 안에 변수로 넣어 cmd 변수에 저장하였습니다.

cmd 를 Popen 포멧에 맞게 리스트 형식으로 바꿔주고 실행하면

각 폴더에 한장씩 이미지가 생성되게 됩니다. 

추가적으로 궁금하신게 있으시면 말씀해주세요

0

이근영님의 프로필 이미지
이근영
질문자

저번 답변 매우 도움이 되었습니다.

조금 더 궁금한게 있습니다

cmd창으로 python detect.py --source data/images --weights yolov5s.pt --conf 0.25 를 실행시켜 yolov5를 실행하는데 파이썬 안에서 이미지를 캡처한 후 그 이미지를 바로 yolov5를 실행히시고 그 값을 출력하는 코딩을 하고 싶습니다

이미지 캡처는 가능하지만 그 후 그 이미지에 대해서 실행을 못시키고 있습니다 그래서 코딩으로 실행시키는 방식이 궁급합니다. 

또 inference라는 폴더는 없고 그 이미지결과값만 runs/detect 폴더만 있어 그 수치에 대한 값을 못찾겠습니다

0

Q쌤님의 프로필 이미지
Q쌤
지식공유자

첫번째에 대한 질문을 정확하게 이해하지 못해서 답변이 부족할 수 있으니 부족하면 재질문 부탁드립니다.

우선 yolo모델은 

뼈대를 구성하는 yolov5s.yaml 파일과

살을 구성하는 데이터셋(이미지와 바운딩박스)이 담긴

우리가 만든 custom.yaml 파일을 필요로 합니다

그리고 학습을 시키기 위해 https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data 에서 보여주듯

python train.py --img 640 --batch 16 --epochs 5 --data custom.yaml --weights yolov5s.pt

이런 명령어를 사용합니다

이때 이전에 github에서 다운로드한 yolov5-master 폴더 안에 보면 train.py라는 python 파일이 있습니다.

파일 중에 파라미터로 이미지 사이즈(--img) , 배치사이즈(--batch), 에폭(--epoch) , 데이터셋(--data), 미리 학습시킨 가중치(뼈대[yaml 대신 사용]) 를 받도록 만들어져 있습니다.

이 과정은 제작자인 ultralytics의 의도대로 만들어진 파일이기에 구체적인 구조에 대해서는 저도 오랫동안 읽어봐야만 알 수 있습니다.ㅠㅠ

만약 파이썬 파일로

python train.py --img 640 --batch 16 --epochs 5 --data custom.yaml --weights yolov5s.pt 를

실행만 시키고 싶으신 것이라면 python의 subprocess 모듈을 통해 파이썬 내부에서 미니 터미널을 생성할 수도 있습니다!

두번째 질문에서 실시간으로 컴퓨터 화면을 받아오는 방법은 저도 잘 모르겠습니다!

대신 화면을 녹화해서 영상을 모델에 넣어 확인해보거나

스크린샷이나 촬영한 이미지들을 해당 모델에 넣어보는 방법은 있습니다

https://github.com/ultralytics/yolov5 에서 보시면

python detect.py --source data/images --weights yolov5s.pt --conf 0.25

이런 과정이 나옵니다

여기서 우리는 --source 0 을 해줬는데 0은 컴퓨터에 연결된 카메라에 연결해준다는 의미이고 

이자리에 이미지경로나 동영상의 경로를 넣어주면 바로 확인하실 수 있습니다.

----------------------------

* 저장 경로는 yolov5-master / inference / output 폴더 입니다!

혹여나 딥러닝 구조가 궁금하시다면

https://ropiens.tistory.com/44

블로그 한번 읽어보시면 좋을 것 같아요!