수행기록퀘스트1
[요약]
- [프로젝트 “인파콕” 브레인 스토밍 with ChatGPT]
1. 인파콕 관련 기술 수집
2. 기술현황
3. 기술예제
- [HW/SW 구성 및 대충일정]
- 목표: Embedded Board(Nvidia Jetson) + cctv (rtsp) + 알람
- [무지성 중간 점검 수행]
- https://github.com/ultralytics/ultralytics python 코드 실행
[Chat GPT 와 함께 하는 브레인스토밍]
□ 해당 아이디어가 어떤 가치를 제공하고 어떤 문제를 해결할 수 있는지 설명
□ YOLO를 활용한 어떤 문제나 응용 분야에 대한 아이디어 제안
1. YOLOv8 이 적용될 모델 (YOLO, You only look once: 넌 한번 만 봐! (건방지다..))
1.1 객체 검출
1.2 이미지 분류
1.3 인스턴스 분할
2. 내 관심
2.1 가치가 있고 문제를 해결함에 탁월할 것
2.2 인류의 생명과 안전
2.3 YOLOv8 모델의 특징을 잘 적용할 것
2.3.1 객체 검출 + 인스턴스 분할
2.3.2 보편적인 실시간 영상 카메라에서 적용할 수 있을 것
2.3.3 cctv 화면 rtsp 통신 영상
3. 조사
3.1 Chat GPT 가 대세라는데 물어보자
Q1: 한국에서 최근 인류 생명에 대해 안전부주의로 일어난 인재가 있을까?
A: 한국에서 최근 인류의 생명과 안전 부주의로 인한 인재가 있었는데, 2022년 10월 30일에 서울의 유흥 지구에서
큰 할로윈 파티의 참석자들이 좁은 골목으로 몰려들면서 발생한 대형 인명사고가 있었습니다. 이 사고로 153명이 사망하고
80명 이상이 부상당했습니다?.
정말 생각만해도 비극… PTSD 가 옵니다…..YOLOv8 로 해결할 수 있을까?
Q2: 그럼 이 문제를 해결하기 위해 YOLOv8 을 사용해 방지할 수 있지 않을까?
A2: YOLOv8과 같은 객체 검출 기술을 사용하면 사람들의 안전을 보호하고 잠재적 위험을 감지하는데
도움이 될 수 있습니다. 예를 들어, YOLOv8은 실시간 객체 검출 기능을 제공하므로,
특정 지역에서 사람들의 움직임을 모니터링하고 과잉 인원이나 비정상적인 행동을 식별하는데 사용할 수 있습니다.
이러한 정보는 안전 담당자나 긴급 대응팀에게 중요한 데이터를 제공하여 즉시 대응할 수 있게 하며,
또한 사고를 예방하거나 최소화하는 데에도 사용될 수 있습니다.
또한, YOLOv8과 같은 기술을 사용하여 안전장비의 착용 여부, 위험 영역 진입, 또는 기타 안전 위반을 모니터링할
수도 있습니다. 하지만, 이러한 시스템을 효과적으로 구현하려면 충분한 데이터, 정확한 모델 학습, 그리고 적절한
하드웨어 인프라가 필요합니다. 또한, 개인 정보 보호와 관련된 법률과 규정도 고려해야 합니다.
YOLOv8을 사용하는 것이 하나의 해결책이 될 수 있지만, 이러한 시스템을 성공적으로 구현하려면 많은 고려 사항과
통합된 접근 방식이 필요합니다.
3.2 그럼 프로젝트를 구체화해보자!!
Q1: YOLOv8 사용해 rtsp 영상을 분석, 특정 지역에서 사람들의 혼잡함을 인식할 수 있도록 만들 수 있을까?
A1: 네, YOLOv8을 사용해 RTSP(Real-Time Streaming Protocol) 영상을 분석하고 특정 지역에서 사람들의 혼잡함을
인식하는 시스템을 구축할 수 있습니다. 이를 통해, 실시간으로 사람들의 움직임과 밀집도를 모니터링하고,
혼잡한 상황을 식별하며, 필요한 경우 경고를 발송할 수 있습니다. 다음은 이를 수행하기 위한 기본 단계입니다:
1. 데이터 수집 및 준비:
객체 검출 모델을 훈련시키기 위해 충분한 양의 레이블된 데이터를 수집하고 준비합니다. 사람들의 혼잡함을 인식하려면
사람들이 다양한 밀집도와 각도에서 캡처된 이미지가 필요할 수 있습니다.
2. 모델 훈련:
YOLOv8을 사용해 데이터셋에서 모델을 훈련시키고, 모델의 성능을 평가합니다. 필요하다면, 모델의 아키텍처를 조정하거나
추가 데이터를 수집하여 모델의 성능을 향상시킵니다.
3. RTSP 스트림 연결:
RTSP 스트림에 연결하고, YOLOv8 모델을 사용해 영상 프레임을 실시간으로 분석합니다.
4. 혼잡도 분석:
모델의 출력을 사용해 특정 지역에서 사람들의 혼잡도를 계산하고, 정의된 임계값을 초과할 경우 경고를 생성합니다.
5. 모니터링 및 경고 시스템:
모니터링 대시보드를 구축하고, 혼잡도 데이터를 시각화하며, 필요에 따라 경고를 전송하거나 기타 응답 메커니즘을
트리거합니다.
6. 성능 최적화 및 확장:
시스템의 성능을 모니터링하고, 필요에 따라 모델을 미세 조정하거나 시스템을 확장하여 더 많은 카메라 또는 지역을
모니터링합니다.
3.3 자 그럼 프로젝트 이름을 정해보자
Q1: 캬 이런건 정말 대단하다 그럼 이 프로젝트 이름을 정해줄래 되도록 짧고 사람들에게 강렬한 인상을 줬으면 좋겠어.
A1: 대충 영어 대답 (좋은데… 한국사람이라 잘 와 닿지 않음…)
Q2: 한글로 해봐
A2: 물론이죠! 한글로도 창의적이고 강렬한 인상을 주는 프로젝트 이름을 몇 가지 제안해 드리겠습니다:
- 인파콕 (InPaKok: '인파'는 인원 밀집을, '콕'은 정확하게 타겟팅한다는 의미로 해석할 수 있습니다)
- 사람눈 (SaramNun: '사람'은 대상을, '눈'은 모니터링 기능을 상징합니다)
- 밀집감 (MiljipGam: 밀집된 인원을 감지한다는 의미입니다)
- 인체경 (InCheGyeong: '인체'는 사람을, '경'은 모니터링이나 경계를 의미합니다)
- 휴먼스캔 (HumanScan: 사람을 스캔한다는 의미입니다, 한영 병기로도 효과적일 수 있습니다)
- “인파콕” (InPaKok: '인파'는 인원 밀집을, '콕'은 정확하게 타겟팅한다는 의미로 해석할 수 있습니다)
채팅내용 링크: https://chat.openai.com/share/54500b80-a5d5-4b8c-9049-ba3476d129cc
[인파콕 관련 기술 수집]
1. 관련 기술 자료 수집
1.1 인구혼잡 관련 기술 구현 현황
1.1.1 서울 실시간 도시데이터
1.1.2 이투온, AI 기반 밀집도 영상분석 시스템 출시 (2022-11-07)
https://www.etnews.com/20221104000116#:~:text=,AI%20%EA%B8%B0%EB%B0%98%20%EB%B0%80%EC%A7%91%EB%8F%84%20%EC%98%81%EC%83%81%EB%B6%84%EC%84%9D
1.1.3 송파구 ‘다중인파 융·복합 분석플랫폼’ 연내 구축 (2023-04-17)
1.2 YOLOv8 관련 튜토리얼 자료 수집
1.2.1 객체 인식
https://m.blog.naver.com/PostView.naver?blogId=beyondlegend&logNo=223039139249&proxyReferer=
1.2.2 인도 차도 분할 (사람이 걸어서 이동할 수 있는 공간 인식)
- 데이터 셋
[HW/SW 구성 및 대충일정]
H/W & S/W 모식도
1. 최종 목표
1.1 Embedded Board(Nvidia Jetson) + cctv (rtsp) + 알람
- 일단 Jetson nano 에 YOLOv8 이 설치되는 것 같다.
1.2 최종 목표를 위한 H/W 진행 단계
! 이게 무슨 개발 일정인가…. 2주 밖에 안남아서 어쩔 수 없다.
0단계 colab
- Object Detection – 사람
1단계: PC(windows) + Tutorial 영상
- Object Detection – 사람
- Instance segmentation - 사람이 걸어서 이동할 수 있는 공간 인식
2단계: PC(windows) + cctv (rtsp) 영상 [2023-10-14 까지]
3단계: PC(ubuntu) + cctv (rtsp) 영상
4단계: Jetson + cctv (rtsp) [2023-10-20 까지]
내용 정리 [2023-10-20]
[무지성 중간 점검 수행]
현재 시간 2023-10-08 6:00, 딸있는 유부남인 나에게 연휴는 내 토이 프로젝트를 위해 나를 위해 모든 시간을 쓸 수 없다.
9:00 까지 3시간 시간 안에 무지성 중간 점검을 수행한다.
오늘은 1박2일 가족과 함께 여행이 계획되어 있다 ㅠㅜ 그러나 프로젝트도 하고싶다!
(욜로 프로젝트는 처음인데 가능할까? 수행 내용을 기록까지 해야 한다!!!)
움직이는 동영상에서 사람을 객체 인식 수행
프로젝트 시작 전 환경 (Anaconda 설치 Windows10 PC)
1. 가상환경 생성
2. YOLOv8 사용 검색 중 ultralytics git hub 확인
이게 끝? 바로 해보자
잠깐!! ultralytics 란?
Ultralytics는 YOLOv8을 개발한 조직입니다.
이 조직에서 Ultralytics HUB라는 플랫폼을 제공하여 머신 러닝 모델의 생성, 훈련 및 배포를 지원합니다.
이 플랫폼은 사용자 친화적인 노 코드 인터페이스와 다양한 딥 러닝 프레임워크 지원을 특징으로 합니다.
Ultralytics HUB 에서 시키는 예제를 해보자!
2.1 설치
2.1.1 pip install ultralytics
열심히 설치가 완료되셨다.
2.2.2 CLI 명령어 넣어 !! (CMD 에서 복붙, )
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
2.2.3 뭐 된건가??? Run\detect\predict 에 뭘 저장한 거 같다
!!!!!!!!!!!!! 아 이렇게 일해? 굳
2.2.4 결과물 (복붙만 했을뿐인데 멋지다!)
2.2.5 Jupyter Lab에서 pyhthon 코드를 실행해보자
2.2.6 자자 무지성으로 그냥 해!!
그렇다 이건 바로 안되나 보다 모델만 있으면 되잖아!
아무래도 챗 지피티 형님께 물어봐야겠다.
2.2.7 처음에 모델 파일이 없어서 했나 했더니… 아니 모델 다운 문제가 아니라 라이브러리 import 문제였다.
2.2.8 Jupyter Lab 에서만 안되는 건가? python 실행 후 import
된다! 여기서 시간을 낭비할 수 없다.
2.2.8 Jupyter lab을 포기하고 파이참으로 갈아탄다!!
된다… 그러나 트레인 시간이 총 10분 가량 걸릴 것 같다.
이 시간에 coco128.yaml 에 대해 공부해보자.
- 뭐 데이터 셋이고 이제는 UI 개발할 때 유용했던 icon 이미지 검색인 flaticon 이 있는데 이처럼
학습 모델을 쉽게 찾을 수 있다는 플랫폼이 있다니.... 최신 이미지 분석 쪽 발전 단계가 충격적이다.
이 퀘스트를 준 E4DS make 에 감사합니다.
2.2.9 검색해서 동영상보고 그럴 여유가 없다 챗지피티 형님께 물어보자.
형님이 날 칭찬해주신 것 같다.
2.2.10 예제 수행: 그 사이 뭔가 완료가 되었다….근데 CLI 에서 실행한 것 처럼 간단하지가 않다.
훈련은 시켰으나 결과가 바로 나오게 하는 코드는 아닌 것 같다.
뭘 잔뜩 내 컴퓨터에 설치를 해놓고 CLI 처럼 예쁜 결과를 줄줄 알았는데
결과는 학습해서 모델만을 만들어 주는 코드인 것 같다.
2.2.11 결과확인: 로그 기록을 보니 result 에서 뭔가했긴했다.
bus.jpg: 640x480 4 persons,
"인파콕" 목표의 첫번째 단계인 이미지에서 사람 4명을 찾았다는 것이다.
무지성으로 CLI 처럼 Python 코드를 실행하면 똑 같은 결과가 나올거야라고 생각했지만
그렇게 순탄하지 않다. 우리 인생처럼
귀찮지만 설명서를 읽어야 한다.
2.2.12 Ultralytics YOLOv8 Github 에서 제시한 See YOLOv8 Python Docs for more examples.
https://docs.ultralytics.com/usage/python/
여기에서 더 잘 설명해주는 것 같다. 대충 읽어보자!
2.2.13 문서 목차 확인
내 목표는 CLI 처럼 이미지를 얻는 것인데 와 코드만 봐서 어떨지 모르겠는데 다음 제목으로 정리 되어 있다.
(1) Train (python example 코드에 있던 내용이다.)
(2) Val (python example 코드에 있던 내용이다.)
(3) Predict (오! 이걸 무지성으로 실행해보자)
(4) Export (python example 코드에 있던 내용이다.)
(5) Track (코드에서 유튜브 링크를 불러온다 동영상에서 분석?!)
Yolo 설명영상처럼 동영상 위에 뭐 그려주고 하면 바로 목표 달성이 아닌가? 개꿀이다.
(6) Benchmark
(7) Using Trainers
2.2.15 무지성 중간 점검의 컨셉에 맞게 Predict 와 Track 을 복붙한다!
2.2.16 Predict 수행 - 안되!!
다시 학습이 되고 있다. 내가 무지성이라 다시 하는 줄 알고 진행을 분석해보니
다른 default 모델을 불러오는 수준으로 predict 하는 용도로 모델을 만드는 것 같다.
Ultralytics 에서 제공한 YOLOv8 툴이 스스로 착하게 덮어쓰지 알고 폴더를 생성해서 일하는 것 같다.
30분 전 학습한 것이 날라가는 줄 알고 속상할 뻔 했다.
음 main.py 을 다시 실행한 거다 하하…. Predict 를 수행하기 위해 2번째 train 한 데이터로 경로를 수정했다.
2.2.17 Predict 결과 확인
Predict 가 잘 되었다. Webcam은 일단 오류나서 막아 놓고 실행했다.
꺄울 된거 같다
웹캠은 다시 보니 테스트한다고 켜놓은 것이 문제였다
2.2.17 Predict - 웹캠 버전 수행
모니터에 적당한 거리 + 사람 이미지를 띄워 놓고 웹캡으로 찍어서 predict 를 해보자
https://www.istockphoto.com/kr/%EC%82%AC%EC%A7%84/%EA%B1%B0%EB%A6%AC%EC%97%90%EC%84%9C-%EA%B1%B7%EA%B3%A0-%EC%A0%84%ED%99%94%EB%A1%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0%ED%95%98%EB%8A%94-%EB%91%90-%EC%82%AC%EB%9E%8C%EC%9D%98-%EC%A0%95%EB%A9%B4-%EB%B3%B4%EA%B8%B0-gm1204152922-346365612
창을 닫고 실행하니 잘된다
좋다 좋다 track 바로 실행합니다.
2.2.18 track 실행 결과
유튜브에서 캠들고 거리들고 다니는 애가 있다. 이 분의 영상으로 테스트해보자!
Come Back REAL TIME Live Walking Tour Seoul KOREA ???? Hongdae, Seoul Night Walk | Seoul hot place
https://www.youtube.com/watch?v=AguwBNWVhRw&ab_channel=WatchersClub
와 만족할 만한 결과가 타왔습니다. 지금 시간 8:47
이제 Q1 제출을 완료하고 다시 유뷰남의 역할을 하러 가겠습니다. 하하
남은 10분은 word 에서 작업한 글을 Q1 에 맞게 수정하는데 쓰겠습니다.
(+) 내용 수정과 글 정렬을 수행. 다시 봐도 YOLOv8 을 Ultralytics 과 챗 GPT 를 주신 OpenAI 형님
시도할 동기를 주신 e4ds 채널5코리아 대표이신 명세환 님께 감사를 드립니다
- 첨부파일
- pythonProject2.zip 다운로드
로그인 후
참가 상태를 확인할 수 있습니다.