|
일일보고서
| 성명 |
송교원 |
학번 |
201902705 |
| 대학 |
공과대학 |
학과 |
컴퓨터융합학부 |
| 실습기관 |
(주)에딘트 |
| 실습부서 |
AI 개발팀 |
|
2024-06-25 |
| 6.24
구성원들과 서로 소개하는 시간을 갖고, 업무에 필요한 대략적인 환경을 구축함. 팀 내 소통을 위한 노션과 슬랙에 참여하고 근퇴 관리를 위한 flex 어플에 대해 교육받음. 회사의 사업 아이템에 대한 지식을 전수받고 회사의 시스탬에 대하여 이해하는 시간을 가짐.
6.25
깃허브 개발 코드에 대한 접근 권한을 부여받음.
Ai 분석 서비스를 제공하기 위한 Ai converter과 Ai analyzer 코드의 구조를 이해하고 해당 코드의 실행을 위한 개발환경 구축.
매주 화요일마다 진행되는 정기 회의에 참여하여 회사의 업커밍 일정을 파악. |
|
2024-06-26 |
회사의 제품의 코드를 뜯어보며 서비스가 동작하는 과정을 이해하는 시간을 가졌습니다.
가장 먼저 한 것은, AI Analysis 코드의 진입 과정에 대하여 분석하는 것이었습니다.
src/config.py
schHandler
init <= endProvider.getEmode() 여기서 config.yml읽어서 저장, 즉 sch_handler의 eMode에 모두 저장됨. SOURCE : Local / Cloud DESTINATION : DEV PURPOSE : CONVERTER / AI_ANALYSIS_**
다음과 같은 순서로 진입한다는것을 알았고, 이를 통해 서비스의 큰 틀을 이해할 수 있었습니다. |
|
2024-06-27 |
AI 모델이 서비스에서 어떻게 호출되어서 동작하고 있는지 확인하는 것을 목표로 잡았습니다.
파이프라인을 따라가며 데이터들이 전송되는 방식이 매우 복잡하였지만,
(1) _yoloPredictCore: YoloDetectPredictCore
이 부분에서 욜로 모델을 호출하는 것을 알 수 있었고,
pipelineDto 객체를 받아서 그 안에 있는 optionalSideImage를 Yolo 모델의 입력으로 사용하고, 객체 검출 결과를 담고있는 YoloDetectPredictResult 객체를 생성해서 반환한다는 것을 알았습니다 .
self.model.predict(): YOLO 모델을 사용하여 객체 검출을 실행합니다. |
|
2024-06-28 |
| 프로젝트의 전체적인 코드 구조를 익히고, 개인 피시로 환경을 모두 구축하여 로컬에서 실행시켜보는것에 성공하였다. 학습된 모델을 임포트 하는 부분을 찾고, 미리 정의된 룰셋이 어떻게 영상에 적용되는지 파악하였다. 직접 룰셋을 조작하여 영상에서 감지되는 행동 조건을 변경해보았고, 행동 감지 조건에 대한 쓰레쏠드 또한 조정해볼 계획이다. |
|
2024-07-01 |
| config파일을 통해 프로그램의 진입점을 변경해보면서 테스트를 해보았다. SOURCE로는 CLOUD, LOCAL이 있고, DESTINATION과 PURPOSE등을 바꾸면서 테스트를 진행해 보았다. 캠을 통해 실시간 LIVE로 진행하는 AI_ANALYSIS에서, 캠이 아닌 저장된 영상에 대해서 분석을 진행해보고싶어서 저장된 파일을 읽어와서 분석할 수 있게 변경해보았다. |
|
2024-07-02 |
| Dev 데이터베이스에 접근해서 sql로 데이터를 가져와보는 작업을 해보았습니다. 지금까지는 로컬 환경에서만 코드를 실행시켜 보았는데, ssh 터널링을 이용하여 아마존 서버에 위치행있는 데이터베이스에서 영상 소스를 가져와서 처리해보려 하고 있습니다. 아직 vs code에서 ssh터널링을 성공하지 못하였지만, 성공시켜 데이터베이스의 sqs메세지 큐를 구독하여 필요한 분석 작업을 시행하도록 하려는 목표를 가지고 있습니다. |
|
2024-07-03 |
| 로컬에서 ai분석을 실행하는 것과 서버에서 분석을 실행하는 것의 분기가 나누어진지 오래되어서, 두 코드 사이의 거리감이 컸다. 객체를 탐지하는 모델은 모두 욜로를 사용하고있긴 했지만, 동작을 탐지하는 모델은 서로 다른 모델을 사용하고 있고, 또한 파이프라인의 진행 방법과 객체의 전달 방법도 달랐다. 로컬에서 실행하는 모듈을 서버의 것과 비슷하게 발전시키기 위해 개발하는 작업이 진행중에 있다. |
|
2024-07-04 |
| 로컬에서 ai분석을 수행하는 모델을 업데이트 했습니다. 기존에는 인물의 포즈에 대해서만 디텍션된 점과 선들만이 영상에 표시되었지만, 코드를 수정하여 디텍션된 객체의 영역을 박스형태로 표시하고 객체에 대한 confidence까지 표기될 수 있도록 하였습니다.
또한 직원 교육 시간에 휴대전화를 만지거나 잠을 청한다는 등의 교육에 대해 집중하지 않는 행동을 감지하기 위한 모델의 개발에도 들어갔습니다. 금일은 모델 선택과 간단한 실험을 해 보아 앞으로의 방향성을 정했고, 추후 정확하게 탐지할 수 있는 모델을 개발할 예정입니다. |
|
2024-07-05 |
| culture day를 진행하며 회사 구성원들간의 친목을 다지는 시간을 가졌습니다. 클라이밍 원데이 클래스를 함께 수강하며 친목을 다지고, 리얼뱅크시 전시를 관람하며 문화적 교양을 쌓았습니다. |
|
2024-07-08 |
<목표 1>
라이브에서 실시간 분석을 할 때
→ 초록색 박스로 검출된 객체 영역 실시간 표시하도록 만들기.
현재 :
cvtPredict, rawPredict = self.predictAsLive()
에서 받아올 때 cvtPredict의 yoloObjList에 단순히 검출된 객체의 이름만 리스트로 반환하고 있음
변경 사항 :
base_analysis_core의 convertYoloResult() 메서드를 변경하여 YoloResult를 반환할 때,
검출된 객체의 confidence, box의 xyxy를 함께 반환하도록 해야함.
완료 (17:27)
|
|
2024-07-09 |
| 삼성 교육원에서 의뢰가온 교육 집중을 위한 Ai 디텍팅 모델을 구축하고 있습니다. 영상의 조도가 낮고 사람이 너무 멀리있어 기존의 프리트레인된 모델 파라미터러로는 사람이 잘 검출되지 않는 문제가 있습니다. 따라서 파인튜닝을 통해 문제를 해결하고자 합니다. 금일은 파이썬 모듈을 이용하여 기존 영상에서 이미지를 추출하여 사람을 직접 박스로 바운딩하는 전처리 작업을 진행하였습니다. |
|
2024-07-10 |
| ### Yolo 모델의 성능이 잘 나오지 않음.
### → 파인튜닝이 필요하다고 판단
## 1. 학습 데이터 생성 - 영상에서 이미지를 추출하는 과정
소스 폴더 : video_path1,2,3 등
생성 폴더 : C:/labeling/test1/test****
## 2. 이미지에 직접 사람에 대해 박스영역으로 라벨링
conda install pyqt=5
conda install -c anaconda lxml
pyrcc5 -o libs/resources.py resources.qrc
python [labelImg.py](http://labelimg.py/)
## 4. 트레이닝
python train.py --img 1920 --batch 16 --epochs 50 --data C:/labeling/guide_person/guide_person.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name guide_yolov5s_r |
|
2024-07-11 |
욜로 모델의 파인튜닝이 필요하다고 판단하여 파인튜닝을 할 수 있는 기반을 다졌습니다. 학습 데이터를 생성하기 위해 영상에서 이미지를 추출하는 과정을 자동화 하였습니다. 또한 라벨링 툴을 사용하여 이미지에 직접 사람에 대해 박스 영역으로 라벨링 하여 학습을 위한 데이터셋을 생성하였습니다. 라벨링을 위한 도구로는 LabelImg 라이브러리를 사용하였습니다. |
|
2024-07-12 |
| 모델 성능 향상 → 좋은 데이터셋을 이용한 모델의 학습이 필요함 —> 베스트 데이터셋이 아직 없음.. 일단 로보플로우의 비스무리한 데이터셋을 찾아 라벨링 진행 → 학습 결과 기존 욜로모델보다는 훨씬 잘 잡긴 하지만, 아직 우리의 데이터셋에 맞춰지진 않음.. 결론적으로 우리에 맞는 데이터셋이 필요해보임 모델 - 욜로 포즈가 필요할 듯 함 **감지된 데이터 로깅 및 리포트화** - 교육기간 동안 각 학습자별 태도를 정량화된 데이터로 확보하여 파악하고자 함 - 리포트 제공 주체는 교육 프로그램 관리자/진행자 - 1~2일 교육기간별 데이터를 쌓고 그에 따른 결과 리포트 제공 - 얼마나 딴짓, 자리비움 등을 하지 않고 교육에 집중했는지 등 - 화장실 등 오래 자리를 비우면 객체(사람) ID가 초기화 되는 현상 발생 - 복귀할때 신규 객체ID 가 발급되면, 해당 인원 추적 후 일정 시간(n초) 좌석 좌표에 고정되어 있으면 기존 ID를 신규 객체 ID로 변경하는 방법으로 추적 유지 대체 - 교육 중 휴대폰 사용의 빈도가 얼마나 많았는지 등 - 기타 인력개발원에서 파악/분석하고자 하는 항목을 위한 근거 데이터로 활용 - 각 학습자별 태도 감지 및 데이터 확보 방안 - 전제 조건 |
|
2024-07-15 |
4. 트레이닝
python train.py --img 1920 --batch 16 --epochs 50 --data C:/labeling/guide_person/guide_person.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name guide_yolov5s_results
방향성 고민..
Top - Down
person detection → 각각의 검출마다 사람의 pose estimation을 수행
복잡도는 사람의 수에 비례하여 증가하게 됨.
→real - time detection에 적합하지 않음.. High complexity..
|
|
2024-07-16 |
| 현대 트랜시스에서 요구한 기술에 대해서 연구하고 그에 맞는 모델을 개발했습니다. 차량에 앉아있는 사람의 신체 사이즈와 자세를 측정하고, 시트와 떨어져 있는 허벅지의 각도를 분석하는 모델을 만들기 위하여 욜로 포즈 모델을 활용하였습니다. 또한 삼성 인재개발원에서 요구한 내용에 부합하도록 모델을 발전시키기 위해서 비식별화 필터를 여러가지 방면으로 추가해 보았습니다. 이미지의 누끼를 따서 집어넣는 방법과 캐니 앳지 필터, 가우시안 필터를 적용하였습니다. |
|
2024-07-17 |
| 기술을 상업화 하는데 있어 유의해야할 사항을 정리하기 위해서 사용하는 라이브러리의 라이센스를 정리하였습니다.
## Ultralytics : ***AGPL-3.0*** **License**
---
- Ultralytics란??
- yolov3, yolov5, yolov8을 비롯하여 pose와 detect, segment 모델 모두 Ultralytics에서 제공하는 라이브러리임
- AGPL-3.0 라이센스란?
- AGPL-3.0은 자유 소프트웨어 라이센스 중에서 **가장 강도 높은 제약사항**이 요구됨..
- AGPL-3.0에 대한 **GNU( General Public License) 공식 문서**
- https://www.gnu.org/licenses/agpl-3.0.html
- 사용하는 라이센스(AGPL-3.0)에 대한 **Ultralytics 공식 문서**
- https://firebasestorage.googleapis.com/v0/b/ultralytics-public-site.appspot.com/o/license%2FAGPL-3.0-Software-License.pdf?alt=media
- [**AGPL-3.0 License](https://firebasestorage.googleapis.com/v0/b/ultralytics-public-site.appspot.com/o/license%2FAGPL-3.0-Software-License.pdf?alt=media),** namely the requirement to open-source modified works or larger works containing Ultralytics YOLO code and models.
→ **수정된 저작물은 물론, Ultralytics YOLO 코드 및 모델을 포함하는 대규모 저작물을 오픈소스화해야 함. 고객에 납품할 때, 고객에게 소스코드 전체를 함께 넘겨야함..**
- 회피 방법
1. [엔터프라이즈 라이센스 구독..](https://www.ultralytics.com/ko/license)
→ 라이선스 기간 동안 Ultralytics 에서 출시한 YOLO 모델뿐만 아니라 YOLOv5 및 YOLOv8 과 같은 기존 버전이 포함된 전체 Ultralytics YOLO 소스 코드 포트폴리오에 액세스할 수 있음 |
|
2024-07-18 |
주로 사용하고 있는 핵심 라이브러리인 YOLO가 AGPL-3.0 라이센스를 가지고 있다는 맹점을 찾아, 사용하고 있는 오픈 소스들의 라이센스를 조사하여 상업화 하는데 있어서 문제가 없는지 판단하고, 회피 방안에 대하여 조사해보았습니다. Ultralytics : AGPL-3.0 License
Ultralytics란??
- yolov3, yolov5, yolov8을 비롯하여 pose와 detect, segment 모델 모두 Ultralytics에서 제공하는 라이브러리
- 기존에는 GPL3.0 라이센스를 이용하다, 한층 제약이 높은 AGPL3.0 라이센스로 변경
사용되고 있는 프로젝트
- 프록토매틱
- Yolov8 (detection, pose estimation) - 객체 탐지, 포즈 추정
- 삼성 인력개발원
- 현대 트랜시스
AGPL-3.0 라이센스란?
-
AGPL-3.0은 자유 소프트웨어 라이센스 중에서 가장 강도 높은 제약사항이 요구됨..
-
탄생 배경
-
기존에는(GPL) 서버쪽에서 사용된 오픈소스는 서버 자체가 판매되지 않는 이상, 사용자에게 ‘배포’되지 않는 대상이기 때문에 오픈소스의 의무사항에서 제외되었음.
→ 요즘은 클라우드 서비스도 활발하기 때문에 서버에서도 오픈소스 의무사항 필요
→ AGPL탄생
-
수정된 저작물은 물론, Ultralytics YOLO 코드 및 모델을 포함하는 대규모 저작물을 오픈소스화해야 함. 고객에 납품할 때, 고객에게 소스코드 전체를 공개해야함..
-
AGPL-3.0에 대한 GNU( General Public License) 공식 문서
-
사용하는 라이센스(AGPL-3.0)에 대한 Ultralytics 공식 문서
AGPL-3.0 라이센스에 대해 고려해야할 사항
-
AGPL SW 수정여부
- AGPL 오픈소스를 수정 없이 binary형태 혹은 REST API로 통신하여 사용하는 경우에는 오픈소스에 대한 저작권 고지와 해당 오픈소스에 대해서만 공개의무가 발생
- 하지만,, AGPL 코드를 수정해서 사용하는 경우에는 변경된 사항들을 포함하여 공개해야함
→ 삼성 교육원이나 현대 트랜시스같은 경우, 모델을 학습시키는 과정이 필수기 때문에 수정 없이 사용하는것은 불가능 할 듯
→ 소스코드 혹은 바이너리로 배포 시 배포 대상에게 소스코드를 제공해야함
-
Main Application 빌드에 AGPL SW가 포함되면 안됨
- AGPL 코드가 포함된 채로 빌드가 수행되는 경우라면 1번에서 예외처리가 되는 통신하여 사용하는 경우가 아니기 때문에 프로그램 코드 전체를 공개해야 하므로 반드시 통신하는 형태로 사용을 해야함
- AGPL-3.0 프로그램을 수정한 경우에는 네트워크 서비스 시에도 원격 접속자에게 소스코드를 제공해야 함 → 프록토매틱
→ 기존 프록토메틱 서비스의 경우 별다른 모델의 학습 없이(수정 없이) 이용하는 점은 다행이지만, 통신 형태로 yolo모델을 분리하여 이용하고 있는 것이 아니기 때문에, 코드 분리가 필요함
-
버그 패치도 수정사항에 포함 됨
- AGPL SW를 사용할 경우 잠재적인 Risk중 하나는 사용하다가 버그가 발생할 경우 수정이 필요한데, 이때 버그를 잡기 위해 코드를 수정하게 되면 수정 된 모든 코드 또한 공개해야함
→ yolo의 버그를 패치하는 것조차 코드의 수정이라고 본다는 의미
회피 방법
-
엔터프라이즈 라이센스 구독..
→ 라이선스 기간 동안 Ultralytics 에서 출시한 YOLO 모델뿐만 아니라 YOLOv5 및 YOLOv8 과 같은 기존 버전이 포함된 전체 Ultralytics YOLO 소스 코드 포트폴리오에 액세스할 수 있음
-
Yolo의 다양한 버전 중 AGPL 3.0의 적용을 받지 않는 모델로 변경 (링크)
→ C기반의 Darknet 오픈소스 신경망 프레임워크에서 구현된 Yolo 버전들 사용 (기존 파이토치 기반은 사용 불가)
→ 문제 1 : v8에서 제공되는 yolo-pose 사용 불가
→ pose 룰셋을 예전에 사용했던 mediapie로 변경하는 선택지 존재
→ 문제 2 : 성능이 그대로 유지될지 미지수
→ 문제 3 : 수정해야 할 사항이 많음
-
프록토매틱의 경우, yolo 모델을 사용하는 부분을 분리하고, 통신을 통해 파라미터와 결과를 주고받도록 변경
→ 문제 : 파인튜닝을 통해 yolo 모델의 성능을 높이는 선택지가 사라짐
-
YOLO를 통해 학습된 모델(weight) 만 가져와서, inference source 코드는 직접 작성
→ 라이센스 문제를 회피할 수 있는가에 대한 답이 불확실
OpenCV: Apache License 2.0
OpenCV란?
- 오픈 소스 컴퓨터 비전 라이브러리 중 하나로 크로스 플랫폼과 실시간 이미지 프로세싱에 중점을 둠
- 영상 관련 라이브러리로서 사실상 표준의 지위를 가지고 있음
사용되고 있는 프로젝트
Apache License 2.0란?
-
아파치 라이선스 2.0은 GPL과는 달리, 소스코드 공개의 의무가 없고 2차 라이선스와 변형물의 특허 출원이 가능하다.
-
누구든 자유롭게 아파치 소프트웨어를 다운 받아 부분 혹은 전체를 개인적 혹은 상업적 목적으로 이용할 수 있음
-
재배포 시에는 아파치 라이선스 버전 및 표기는 반드시 포함하도록 함으로써 아파치 라이선스로 개발된 소프트웨어라는 것을 명확하게 밝혀야 함
-
결론 : 아파치 라이선스로 개발된 소프트웨어라는 것을 명확하게 밝히기만 하면,
자유롭게 활용 가능!!
Mediapipe : Apache License 2.0
참조 : LICENSE 사용중 / 사용예정
|
|
2024-07-19 |
visiomatic : 청주공고 → 일단 눌러놓고 있음
삼성 인재개발원에 더 집중해야함
studycookie : 시선처리, 메타코드와 협업
Proctomatic : 온라인 뿐만 아니라 오프라인으로도 적용 가능 → 개별 학생들의 집중도 확인
자이닉스에서 자꾸 분석 오류가 발생함 → 룰셋이 민감하게 반응해서일 가능성 있음 → 룰셋 줄여보기로 대응해보기. AN 관련 룰셋 조정 필요
메타코드 집중도 파악 → 웹 기반 & StudyCookie : 시선처리 가능한지 확인, 웹 브라우저로 웹캠에 접근이 가능한지 확인해야함.
현대 트랜시스 → 급함. 9월중. 되는 것만 보여줘야 함
코드프레소 → 8월. 연동은 힘들고, 자이닉스와 비슷하게 접근해야할 듯
⇒ 결론 : proctomatic처럼 된다. 800명 정도 되는 인원이 해커톤을 보는데, 여기서 가능하게 해야함.
|
|
2024-07-22 |
코드프레소 - CJ 베트남 해커톤 : 프로토매틱에서 2시간 넘는 영상 검증 필요.
⇒ 금요일 저녁에 시험을 해봐야함
재택 : 다음주 일정 수요일까지 올리기
욜로v9와 v10의 오픈소스 라이센스를 확인할 필요가 있음.
기존 우리가 사용하는 v8의 경우 라이센스가 AGPL3.0이기 때문에 상업적으로 사용이 불가능
⇒ 확인 결과 v9는 gpl3.0, v10은 agpl3.0 인 것으로 확인되었고, 결론적으로 둘 모두 부적합
|
|
2024-07-23 |
삼성 인재개발원이 요구한 모델 개발에 있어, 더욱 범용적으로 활용이 가능하게 하기 위해서 다양한 데이터셋을 이용하여 학습할 필요가 있음
이에 따라 삼성 교육원 환경에서 얻은 데이터 뿐만 아니라 기존 영화관이나 auditorium과 같은 데이터를 추가로 라벨링하여 학습에 사용하면 좋을 것 같음
→ 테스트 결과 조금씩 정확해지는 것이 눈에 보임. 이 방법 그대로 데이터셋을 늘려가는 방향으로 진행하면 될 듯 함
핸드폰을 하는 사람을 정확하게 잡아내는 부분에 있어서 정확도가 높지 않음.
이 문제를 해결하기 위해서 확실하게 휴대폰을 하는 사람의 모션을 일일이 다운받아서 이 데이터를 추가로 학습하는 쪽을 고려중. 이 때 데이터에 대한 오버피팅을 막기 위해서 노이즈를 추가하고, 또한 부족한 데이터 수를 보완할 목적으로 데이터 어그멘테이션을 진행함.
데이터 어그멘테이션 기법으로는 스케일랑과 노이즈 추가, 그리고 각도를 비틀고 좌우반전을 추가하는 형식으로 총 25장의 데이터에 대해 150장의 데이터로 증강하였음.
|
|
2024-07-24 |
보고서 기능을 구체화 하기 위해 로직 확정 필요 - 특정 가능한 behavior에 대해서 라벨을 분류해야함 - 정확도에 따라서 자동 줌인의 기능 추가 필요 - 로직으로는 confidence와 duration 두 가지가 판단을 위한 기본 요소가 되어야함 |
|
2024-07-25 |
yolo 파인 튜닝 기법 & 모델 구조 특징 파악 - 작은 물체를 디텍팅 하기 어려운 문제를 어떻게 해결해야할까 -> 1. 사람을 detecting 한 영역을 잘라 behavior 모델에 넘겨, behavior 모델이 병렬적으로 각각의 영역에 대해 추론 하기 ----> 문제 1. 사람이 많아지면 많아질수록 컴퓨팅 리소스가 선형적으로 증가함. 많은 인원이 교육에 참여하게 될 경우, real time 디텍팅이 불가능할 듯 함 ----> 문제 2. 기존 학습을 시킨 데이터와 inferrence를 진행하게 되는 영역과 차이가 매우 큼. 즉 학습 데이터를 다시 모아서 학습을 진행해야함 -> 2. 작은 물체에 대해 디텍팅 성능이 뛰어난 모델로 대체 ----> yolo nas 모델이 작은 객체에 대한 디텍팅 성능이 우수하다고 함. 실험이 필요할 듯
- 기존 train의 방법 조금 더 살펴보기 |
|
2024-07-26 |
삼성 인재개발원으로 킥오프 미팅을 다녀옴.
회의 내용
- 개인정보보호를 위해 얼굴은 블러 처리
- 녹화 데이터 → 과정 종료되면 바로 폐기하고 싶음
- 일정 시간 보관 후 폐기(24시간 내)
- 데이터 저장 관련
- 녹화된 영상 데이터를 가져가기는 어려울 수 있음
- 대외적으로 나가는게 현실적으로 어렵다는 의견
- 보유기간을 과정 종료일까지라고 공지할려고 함
- 시스템앤솔루션에서 관리는 가능하다고 하는데 용량 크기가 문제임
- 비밀보호서약서를 세게 걸어서 하드 드라이브를 반출하는 방식
- 논의가 많이 필요해보임
- 단, 개발 기간에는 가져가서 학습해도 됨
- 궁극적인 서비스 방향은 교육 만족도 데이터로 활용하여 진행했으면 함
- 레포트 형식
- 어떤 항목이 어떻게 나올지? 에딘트가 먼저 제안해달라고 함
- 우리가 할 수 있는 것을 먼저 전달해주면 인개원에서 의견을 주겠다고 함
- WBS, 과업을 상세히 정의한다거나 개발 계획을 명확이 가져가야한다 함
- (시스템앤솔루션) 오디오, 모션과 관련된 내용은 방송 에러가 상당히 많았다고 함
- 우리가 주는 정보가 명확하다면, 잘 나오겠지만 첫 도입이라 우려가 됨
- 레퍼런스가 아직 없기 때문에 시작 단계를 천천히 갔으면 좋겟다고 제안
- (시스템앤솔루션/에스원) 카메라를 언제 설치할지?
- 현재 카메라 박스를 확장해서 한다고 함
- 일단, 임시적으론 무늬 목재벽(?)으로 노출로 해놓고 실제 공사까지 유지
- 실제 데이터는 이걸로 따서 S/W 개발은 진행하는 방식
- 20cm~50cm 정도 위치가 변경될 수 있다 함
- 공사는 러닝타임 16일이라고 한다 함
- 현실은 21일 정도 걸린다고 함
- 12월 중순에 강의가 없어서 인테리어 공사는 이떄 하는 것으로 제안
- 시스템앤솔루션 업체에서는 준공을 미리 쳐줘야 좋은거라 하심
- 가설치는 전선 등이 보여서, 내장으로 숨기는 인테리어 공사가 필요하긴 하다 함
- 과제 일정
- 보고를 10월로 했기 떄문에 이때까지 작업을 완료해야 함
- 즉, 가설치 후 영상을 받을 수 있는 일자는?
- 제일 빠른 일자는? 임시 8월 25일 설치완료
- 10월 14일까지 일단 과제 1차 완료
- 관제실 모니터링 TV 사이즈
- 벽에 걸려있는 모니터링 TV와 동일한 사이즈 (52인치?)
- 시스템 업체에서 시스템 컨트롤 가능한 태블릿 제공해주신다 함
- 통합제어장비는 일단 인재원 기존 장비를 활용해보시다 함
- 쉬는 시간은 어떻게 대응할 것인지
- 여라 사람이 한번에 일어나거나, 일반적이지 않은 이벤트로 트리거 포인트 캐치 시도
- (에딘트) 일단은 자동으로 거를 수 있을지 시도는 해보겠다고 전함
- 하지만 완벽할 수 없기에 노이즈로 잡힐 수 있는 리스크는 존재한다고도 전함
- 관리자가 스케쥴을 조절하기 귀찬고 번잡해 할 수도 있어서 자동화를 원함
- 카메라로 잡히는 겹치는 부분은 어떻게 처리할 것 인지?
- 애당초 영상을 잘라서 주는 것은 추가 장비와 비용이 발생 (시스템앤솔루션)
- 그래서 우리가 카메라 한대만 해당 위치를 Assign 하는 방식으로 해결해보겠다고 전함
- 교육 운영자는 사실 문제의 교육생을 띄우고 싶지 않다고 함
- 부원장님은 반대로 공개처형하고 싶어함 (실무와 상사의 간극 존재)
- 수동 방식이 먼저 깔려있고, 그 다음에 자동 방식이 따라 붙어야 함
- 운영자가 컨트롤 하는 방식으로 생각하고 있음 (태블릿으로)
- 모바일 등 네거티브 행동을 횟수나 시간 등을 기록해서 선정하는 로직이 있어야 함
- 몇 회 이상 발생, 몇 초동안 누적 등
- 조는 것도 시간을 계산해서
- 필기하는 것은 제외시킬 수 있는지?
- 강의 시작할떄 디지털 교육관으로 거듭나기 위해 사이니지에 공지할거라 하심
- AI 기술 도입했다 등등
- 휴대폰 사용을 자제해달라
- 에이맥스? → 삼성 하만 브랜드
- 카메라 자동 줌인
- 이건 시스템앤솔루션 프로그래머와 SI를 해야함
- PIP 식으로 띄운다 (80인치)
- 앞단(디지털 사이니지) : FHD면 충분하지 않을까 함
- 뒷단(관제실) : 관제실 내 영상은 열화 현상 X
|
|
2024-07-29 |
삼성 프로젝트 모델 개발 내용을 구체화함
- 1. 자동 줌인
- 우리 솔루션 피드백 : 신기해하시고 신뢰도가 나오는 것도 좋아하심
- 처음 시작은 모바일 사용 감지였으나, 주변에 우려가 있어 고도화가 될 것 같음
- 디지털 교육원으로 거듭나는 목표
-
-
- 2. 기존 카메라 3대의 영상 소스 요청
- 실제 영상 작업하기 전에 기존 현장 영상을 학습 및 테스트를 통한 개선 시도
- 실시간 감지 알람 및 결과보고서 기획 및 UX 시나리오 도출
- 3. 데이터 저장 방법에 대한 방안 고민 필요
- 과제 일정 내 개발 기간에는 영상 저장 및 학습해도 됨
- 하지만, 실제 도입 이후에는 24시간 내 폐기할 방침이라 함 (인개원 정책)
|
|
2024-07-30 |
TO-DO
- 과제 정식 킥오프 메일 기다리기 (인개원)
- 인개원으로부터 메일 수신 시 정식으로 킥오프(계약)로 간주 됨
- 시스템앤솔루션도 해당 시점을 기점으로 공사 진행 시작
- 파나소닉 카메라 샘플 요청 (시스템앤솔루션)
- 자동 줌인 등 카메라 기능과 연동을 위한 테스트 진행 필요
- 업체 엔지니어와 미팅 및 협업 추진 필요 (API 수신 처리 등)
- 결과보고서 레퍼런스 공유 및 내용 제안 (에딘트)
- 기존 프록토매틱 보고서를 인개원에서 참조용으로 공유
- 공유 형태와 방법 논의 필요 (신규 PDF 문서 작성, 데모 계정 전달, 스크린 캡쳐이미지 등)
- 예상 결과보고서에 담길 데이터에 대해 우리 의견을 정리하여 먼저 제안해달라고 요청 받음
- 보고서 레퍼런스와 우리 의견을 바탕으로 인개원에서 의견을 정리하여 피드백 준다 함
|
|
2024-07-31 |
회의록
- 역할 분담
- - Tim(송교원)
- 학습 이미지 설정 두 가지(640, 1280) 경우에 따른 추론 결과 확인
- 학습 이미지 resize 전처리 유무에 따른 추론 결과 확인
- Detection , Behavior 매칭 로직 개발
- - Ivern
- GUI
- 알림 UI 다듬기
- 실행 전 추론 범위 설정, 좌석 맵핑 기능 개발
- action 을 일정시간에 맞춰 결과 도출 로직
- 코드 공유
- 기본적인 부분이 다 해결되면 깃 허브에 업로드
|
|
2024-08-01 |
Detection , Behavior 매칭
- 사람을 추론하는 ‘Detection model’과 행동을 추론하는 ‘Behavior model’ 두 개가 동시에 실행되어 각각 모델의 추론 결과가 서로 mapping 되도록 구현
- Detection model : 개개인을 tracking하여 각 사람에게 id를 부여하는 역할
- 파란색 박스와 하얀 글자 (Det ID: **)로 표시
- Behavior model : 탐지된 사람의 영역에 대하여 behavior model에서 검출된 영역과의 IOU를 계산하여 일정 threasold를 넘으면 해당 사람의 행동이라 판단
-
현재로서는 positive는 파랑, negative는 빨강, move는 노랑으로 표시함
-
추후에는 positive 라벨을 없애고, negative라벨을 세분화하여 구현할 생각임
→ negative behavior들의 confidence를 높게 설정하면, 확실하게 부정적인 행동에 대해서만 negative로 잡도록 할 수 있음
- 1초에 6프레임 내외의 처리속도
- 크기가 가장 큰 x모델을 사용하였기 때문으로 보임
- 멀티쓰레딩을 이용하거나 openCV를 gpu로 옮기는 등의 방법을 통해 개선의 여지가 있음
- x모델보다 작은 모델을 이용하여도 성능이 잘 나오는지에 대한 실험 필요
- 현재로써는 실험 불가
- 지금은 어떤 모델을 적용해도 잘나옴(학습데이터의 다양성이 적어 오버피팅 심함)
|
|
2024-08-02 |
학습 이미지 설정 두 가지(640, 1280) 경우에 따른 추론 결과 확인
- 마찬가지로, 현재로서는 두 가지(640, 1280) 경우에 대한 유의미한 결과의 차이를 확인하기 어렵단 결론
- 보유하고 있는 데이터 셋이 다양하지 않고, 학습에 사용한 데이터 셋과 테스트에 대한 데이터 셋이 유사하여 두 경우가 비슷함
학습 이미지 resize 전처리 유무에 따른 추론 결과 확인
- 학습에 사용하는 이미지의 크기 변경
- yolo 모델의 크기 변경
|
|
2024-08-05 |
Move
쉬는 시간 종료 트리거 작동 구조(예정)
- 수업 첫 시작 후, 인식된 인원을 기준으로 설정
- 쉬는 시간 모드로 전환 된 후, 기준이 된 인원의 n% 가 자리에 착석하였을 경우 다시 강의가 시작된 것으로 판단
비 지도 학습 가능성 여부 판단
- Yolo 모델의 train() 함수의 매게변수 중 freeze가 존재. 즉 통상적으로 이야기 하는 파인튜닝이 가능한지 확인 필요.
|
|
2024-08-06 |
기존 모델 검토 :
-
작은 객체에 대해 정확도가 아쉬울 정도로 낮은 편..
→ 작은 객체가 많다면 높은 해상도로 하는 것이 유리할 수 있다.
-
훈련에 사용한 이미지 크기와 동일한 크기에서 테스트 및 객체 감지를 수행하는 것이 가장 좋은 결과를 얻는 방법임
-
배치 사이즈는 최대한 크게 (작은 배치 크기는 배치 정규화 통계가 부정확해질수 있음)
FREEZE
-
feature extractor의 weight값은 최초에는 random 값으로 초기화 되어있다.
-
최적화된 weight를 찾으려면 많은 학습 회수가 필요하다.
→ 사전 학습된 모델에서 최적화된 weight 기반 학습, 성능, 학습시간에 유리
-
처음에는 feature extractor의 weight값을 학습하지 않고 별도의 classification layer 부터 먼저 일정 수준 학습 시킨 후에 다음에 feature extractor 포함 전체 학습
|
|
2024-08-07 |
- 상시 모니터링 모드 vs 특정 대상 줌인 모드 자동화
- (기능 구현) Ivern & Tim이 조사한 대로 ‘워터마크’를 활용하면 자동화 가능
- (정확도) 미지수
- 특정 대상 줌인 모드 후 상시 모니터링 모드로 돌아갈 때 카메라가 디폴트 위치로 돌아가는지?
- 가능함
- 상시 모니터링 모드 vs 특정 대상 줌인 모드 전환은 ‘자동’ 혹은 ‘수동’?
- 인력개발원은 은근 자동화를 원하는 입장 (담당자의 추가조작 및 귀찮음 감소)
- Dave는 ‘자동화가 가능할지는 개발을 하며 파악할 예정. 하지만 AI가 100%가 아니기 때문에 만에 하나 1% 라도 오류가 난다고 가정하면, 수동 조작이 인력개발원의 이미지를 위해서도 더 좋을 것이라고 답변)
- (에딘트) 만약 자동화를 한다고 하면 ‘시스템앤솔루션’ 개발팀과 우리가 커뮤니케이션을 해야 할 듯
- 시스템앤솔루션 카메라 제어를 Admin에서 하게 되어서, 우리가 Admin에 신호를 줘야 하는데, Admin 언어가 Harman kardon만 쓰는 특수 언어?로 개발되어 있음
|
|
2024-08-08 |
- 우리 PC에서 분석한 소스를 누구에게 줄 것인가?
- 모두 Admin 시스템으로 전송 (Admin 시스템에서 통합 제어)
- 교육장 무대에 오르는 교육 운영 담당자가 제어할 수 있는 태블릿용 앱 개발?
- 킥오프 미팅 때 넌지시 언급했음. 리소스가 많이 들면 이번 스콥에서는 제외해야 할 듯.
- (에딘트) 우리가 만드는 건 아닌 듯. 개발 주체?
- 시스템앤솔루션에서 보유한 태블릿 UI가 있는 듯? 시스템앤솔루션에서 한다고 한 듯?
- 제어? 모니터링? 어느 정도 수준으로 할 수 있는지 시스템앤솔루션에 물어보기
- 만약 시간이 오래 걸린다면 태블릿 앱은 내년으로 미루기
- 학습을 위한 CCTV 영상은 언제 받을 수 있는지?
- (황인주 프로) 지금 설치되어 있는 CCTV 영상은 준다고 함
- 이 영상을 받아도 도움이 되는지? 대비용(예비용)에 가까움
- (김용희 프로) 분석을 위해 추가 설치하는 CCTV 영상은 언제 받을 수 있는지 확인 필요
- 가설치 8.25 (다시 물어보기)
|
|
2024-08-09 |
- 부정적 (형광색 = 확실한 감지조건)
- 모바일 사용 3분 이상
- 졸기 5분 이상
- 잦은 이석 3회
- 긍정적 : 적극적으로 메모하며 주의 깊게 듣기, 손을 들고 발표하기, 질문하기
- 적극적으로 메모하며 주의 깊게 듣기
- 뒷 자리 (어깨 윗 부분만 보이는 영상) 기준으로 휴대폰을 보기 vs 주의 깊게 듣기 각각 해당되는 영상을 보여달라
- 손을 들고 발표하기
- 질문하기
- 임시 설치 CCTV vs 실제 매립 CCTV 미묘한 위치 차이
- 교육생 영상정보 보유기간이 과정 종료후 +24시간내임을 가정
- 어떻게 학습할 수 있을지?
|
|
2024-08-12 |
개발 필요 모듈
- UI/UX
- 대시보드 시스템
- 알림
- 보고서
- 설정
- Yolo 라이센스 내용을 고지 (최대한 숨겨서)
- AI 엔진
- 계획 및 클래스 선정
- 클래스 선정 및 라벨링 식별
|
|
2024-08-13 |
시스템앤솔루션 업체 미팅
- 제안 요약
- 4대 카메라 + 캡쳐보드(?)
- 각 영상 소스를 컨트롤 가능함
- 하나만 선택해서 띄울 수 있고, 한꺼번에 모아서 보여줄수도 있다 함
- 1안
- 하나로 합친 대시보드 영상 (멀티 뷰어) → 영상은 하나
- 샘플 요청? 삼성 영상은 외부 유출이 어려움
- PC 1개
2안
화면 4개 + PC 4개
우리가 영상을 합치는 작업이 필요
- 기술적으로 영상위에 UI를 입힐 수 있냐 없냐가 문제
- 1안, 2안 모두 결국 대시보드는 에딘트 화면으로 나감
|
|
2024-08-14 |
detecting 모델의 inference 결과 오브젝트가 여러개 나옴 -> NMS를 자체적으로 적용하지 않는 듯 -> 직접 구현 필요
시도해 볼 수 있을 항목 - 이상치 탐지 yolo - auto encoder, Dnn, 군집화
보고서가 가장 중요시, 어떤 항목을 잡을 수 있는지 구체화
|
|
2024-08-19 |
라벨링 툴 확립,, 모델 경량화 방법에 대한 고민. 일단 현재 모델 ( Label Up) 멀티쓰레딩 + DB에 자동 저장 하는 항목까지 구현, 테스트 완료
Nas모델 적용 - 현재 라이센스 위반을 하지 않고 협업이 힘들다 - 기존 소스코드에서의 변형이 불가피하기 때문에, 1. 라이센스를 변경 : yolo nas 사용 - 아파치 라이센스 2. 그대로 유지 : 소스코드 배포의 의무는 서비스를 받는 고객에게 한정 - 삼성측에 애매하게 알리기
모바일, 졸기, 잦은 이석, 손들고 발표로 일단 구체적인 라벨 분류 확립 |
|