구글 애드센스 정책으로 인해 블로그에 올렸던 TIL 내용을 깃허브로 옮깁니다.
- [CS231n]Image Classification
- [CS231n]Loss Functions and Optimization
- [CS231n]Backpropagation and Neural Networks
- [CS231n]Convolutional Neural Networks
- [CS231n]Training Neural Networks, Part I
- [CS231n]Training Neural Networks, Part Ⅱ
- [CS231n]CNN Architectures
- [JQuery]AJAX를 활용한 비동기적 데이터 교환
- [HTML, JavaScript]Input 태그 유효성 검사
- [CSS] 폰트 관련 속성 정리
- [Django] Views.py 분리
- [Django]secret 관리
- [Django] 이미 존재하는 DB 연동 by inspectdb
- [Django]DRF(Django Rest Framework) 듀토리얼
- [Github_Io]포스팅 시 Liquid 문법 사용하는 법
- [Github_Io]상단 네비게이션 바 수정
- [Github_Io]상단 masthead 고정하기
- [Github_Io]Header Image 설정
- [Github_Io]포스트에 특정 문구 고정
- [Jekyll]빌드 속도 최적화
- 배포용 requirements.txt 생성 및 설치
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
- CUDA Stream
- Activation Function, Optimizer
- Pytorch To TensorRT Engine
- TensorRT 모델에서 engine 모듈 추출하기
- TensorRT vs TensorRT Engine vs Pytorch 연산속도 비교
- Pytorch to TensorRT by torch2trt
- TensorRT Engine 성능 비교
- PyQT에 넘겨줄 json 수정
- 테스트셋에 대해서 투기 검출률 높이기(1)
- 테스트셋에 대해서 투기 검출률 높이기(2)
- 테스트셋에 대해서 투기 검출률 높이기(3)
- 테스트셋 가공과정 자동화 : 사람이 탐지된 프레임만 추출
- TensorRT Engine Output Post-Treatment
- 프로젝트 진행상황
- 1차 파인튜닝 모델 분석
- AI 개발 가이드 및 조언내용 정리
-
업무지시
-
학습내용
-
업무지시
-
학습내용
-
업무지시
-
학습내용
-
업무지시
-
학습내용
-
업무지시
주말인 관계로 업무지시 없음
-
학습내용
-
업무지시
주말인 관계로 업무지시 없음
-
학습내용
-
업무지시
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
-
업무지시
-
학습내용
-
업무지시
업무지시 없음
-
학습내용
- 프로젝트 설명 / 실시간 영상 프레임 향상 최적화 기법
- Tensorflow 개념 및 메소드 정리
- Tensorflow로 XOR 문제 해결
- 알고리즘 흐름 / CUDA Streams
- 객체/행위인식 모델 코드수정 및 자동화
- 검출정보 json에 저장 / BBOX 이미지 분리
- 투기 행위 인식률 개선
-
업무지시
-
학습내용
NL2SQL 데이터 구축 작업의 전반적인 기초지식 배움
-
업무지시
-
학습내용
첫 째날 배운 지식을 바탕으로 개발자 서버에서 작업해봄
-
업무지시
-
학습내용
-
업무지시
-
학습내용
-
업무지시
-
학습내용
하루종일 상 작업 진행함
-
업무지시
-
학습내용
하루종일 상 작업 진행하다가 오후 3시 퇴근
-
업무지시
-
학습내용
-
업무지시
-
학습내용
-
업무지시
-
학습내용
-
업무지시
하루종일 상 작업만 진행함
-
학습내용
-
업무지시
-
학습내용
하루종일 상 작업만 하였다.
-
업무지시
별다른 업무지시 없음
-
학습내용
하루종일 상 작업했다. 내일은 CCTV 확인하고 테스트셋 만드는 과정 관련해서 설명을 해주신다고 했다.
-
업무지시
-
학습내용
-
업무지시
-
학습내용
-
업무지시
-
학습내용
* 팀즈로 소통하기 때문에 인턴분들 메시지 확인하면 확인표시 (👍) 누르기
* [NL2SQL_난이도_중_ver.1.2.3.220901.pdf](NL2SQL_%EB%82%9C%EC%9D%B4%EB%8F%84_%EC%A4%91_ver.1.2.3.220901.pdf)
* IS NOT NULL 안됨
* AND도 COMP1에 추가
* 컬럼명 같아도 others에 카운팅 됨
* GROUP BY는 집계함수 사용할 때만
* DISTINCT 사용 가능
* GROUP BY 기준 여러개일 때, 기준 안써줘도 됨
* WHERE에 있는 컬럼은 NL에 녹여서 쓰기
* GROUP BY에 사용한 컬럼 SELECT에서 집계함수로 대체가능
* 기준 여러개일때는 무조건 무엇으로 통일
* 다양한 nl 위해서 여러가지 시도
* 자연어에 모든 특수문자 다 안됨(위도 경도 모두 포함)
* (명)/일 -\> 일일에 대한 수용량이 이런식으로 바꿔서 표현하기
* AND 다시 빠짐
* "영업상태명"이나 "상세영업상태명"처럼 데이터가 비슷해서 꼭 명시를 해줘야 하는 경우의 컬럼 사용을 지양
* 웬만하면 GROUP BY 기준은 하나로
* HAVING은 일반컬럼X 집계함수만
* SELECT에 코드나 일련번호 같은 건 지양
* 추가작업 가능 여부는 해당 테이블을 다시 사용할지 여부
* 현실에서 일어날 수 있는 일인지 확인
* 연예인 -\> 개인정보 (사업장명에 사람 이름이 들어간 건 괜찮음)
* 테이블명 띄어쓰기
* 자연어 글자수 150글자제한에서 공백제외 80글자 미만으로 작성
* AND는 적합도 기준 포함 아님
* '테이블','표','컬럼','그룹화','오름차순','내림차순'등 SQL문을 한글로 그대로 표기한 듯한 자연어 질의 생성은 지양
* 단어안에 어쩔 수 없이 '서울'이 들어간 경우를 제외하고는 '서울'이 들어간 단어 사용을 지양
* 테이블명을 포함시키는 경우는, 테이블명을 활용하지 않을 시 설명이 불가능한 경우에만 예외적으로 사용
* 자연어에 특수기호 사용 및 길이가 긴 관리번호(코드) 조회 금지
* 사용 가능한 종결어미 지정 변경
> '-줄래', '주겠니', '어떻게 되니', '어떻게 돼', '검색해줘', '찾아볼까' 금지 -\> '알려줘', '찾아줘', '뭐야', '얼마야'는 가능
* 주소 + 우편번호 -\> 어디
> 우편번호가 '어디'이기때문에 '어디'로 처리
* 이전 이후 조심하기
> 2018 이전 : **\<= 20181231** OR **\< 20190101**
>
> 2018 이후 : **\>= 20180101** OR **\> 20171231**
* **아래에 해당하는 테이블들은 작업하지 않고 불가능으로 제출**
1. 테이블의 레코드 개수가 50개 미만인 테이블
2. 테이블명에 번역된 언어가 표기된 경우 (ex. 서울 북촌한옥마을 관광 안내 (중국어) )
* **제출 전 결과값이 나오는지 꼭!! 확인 후 제출**
* 쿼리작성시 띄어쓰기 잘하기
* 집계 함수 사용시 반드시 group by를 사용
* select 된 컬럼을 자연어에 제대로 명시했는지 확인
* 자연어 작성시 용언(동사, 형용사)을 사용할때 나눠서 체언을 꾸며 주는 표현을 지양
> -\> 남자 고용원과 여자 고용원의 수 (x)
> \-\> 남자 고용원의 수와 여자 고용원의 수 (ㅇ)
* group by사용시 자연어에 select되는 컬럼을 자연어질의문을 작성 하지 않는 경우가 생기는 쿼리를 지양한다.
* !=, \<\> 의 사용을 금지\*\*(단, 컬럼 != 결과값은 사용 가능)\*\*
* 날짜에대한 비교연산은 \>(초과), \<(미만)의 표현만 가능
* 왠만하면 자연어 작성시 테이블명의 사용 지양
* 추가사항
> 내가 여러가지 부분을 담당하고 있는 총 + 감독 이다 라는 표현을 할때는 붙여서 '총감독' 이라고 표현합니다.
>
> 전체적으로 감독이 몇 명인지를 표현(수적인 표현)할때는 '총 감독' 라고 표현하면 됩니다
* where 컬럼명 \>= 202000000000는 불가, where 컬럼명 LIKE '2021%' 는 가능
> -\>단, 결과값이 이상 할 경우 다른 컬럼 사용
* where 조건절에 ( ) 괄호를 찾는 쿼리문 사용 금지
> ex) where 사업장명_컬럼 = '(주) 00기업'
* 표 정보를 잘 해석하여 모순이 되는 부분이 없는지 확인하기
* 상 작업 시, **SELF** **JOIN 사용 중지** (최상은 그대로 유지)
* 자연어 유형 무엇이 너무 많은 관계로 공지 내려가기 전까진 무엇 생성 금지(단, 테이블이 무엇만 생성 가능한 경우에만 예외)
* 현재 개발서버 db 전산 반영중에 있어서 컬럼명이 조금 이상하게 나올 수 있음. 해당 컬럼명 길게 늘려 보면, 마지막에 원래 컬럼명 나오니 그것으로 작성.
* 쿼리 작성시에도 변경된 컬럼명으로 쿼리문 작성하셔서 진행하시면 됩니다
* 현재 원천데이터(테이블) 중복 건과 관련하여 미사용된 컬럼명 정제된 파일이 업데이트 되어 반영된 상황입니다.
* 생성시에 문제가 생기거나 이상하게 보이는 것 있으면 바로 이야기 해주시고, 개인 팀즈로도 바로 보내주셔도 됩니다.
* 관련해서 지금 반영중인 부분때문에 변경된 컬럼으로 조회했을경우, 조회가 되는 컬럼도 있고, 그렇지 않는 컬럼도 있는 것 같습니다.
* 조회 가능한 컬럼으로 작성해서 제출해주시면 되겠습니다.
- group by는 무조건 집계함수
- 테이블명 안들어가게
- 예약어/명령어에서만 엔터
- 테이블/컬럼명은 가급적 복붙
- 들었을 때 위치를 알 수 있으면 어디 ex) 대전역
- "행정시설-복지"같은 컬럼은 "행정시설 중에 복지"와 같이 변환하여 사용
- JOIN시 AS 써줘야 함
- 테이블명은 T1, T2로
- 2-0-2는 최상으로
- 날짜 관련된 표현 중 부등호는 사용금지, 무조건 LIKE
- IN, NOT IN은 서브쿼리에서만
* 현재 상 작업량이 아직 저작도구에 태워지지 않은 관계로 중 작업 진행
* 중에 들어가서 중 작업을 진행하면 된다.
* 당분간 모션 인식 모델 테스트셋 생성을 위한 작업을 회사 7층에서 하기로 함.
* 연구원님께서 내일 오전에 또 한다고 하심
* 오후 3시에 2층에서 교육 있었음
* 과장님께서 개발자 진로에 대해서 설명해주심
* pyQT로 GUI 만드는 과정에서 UI/UX에 대해서 고민해보라고 하심
* 자세한 화면 구성 등은 내일 다시 생각하면 될듯
- 객체/행위 인식 모델의 성능 테스트를 위한 저작도구 개발 프로젝트를 하게 될거라고 하심
- GUI 작성은 PyQT
- Xming 사용 회사 cctv 개발 서버에 접속해서 작업함
**서버에서 GUI 표시 안됨 문제 해결**
* 방화벽 해제
* Remote X11(SSH) 설치
* Xming 켜져있나 확인
* 환경변수에 DISPLAY(localhost:0.0) 추가
- [검수피드백] 다양한 종결어미를 사용해주세요. 알려줘 가 너무 너무 많습니다.
- 오늘 작업하시는것 검수하고 있는데 다 알려줘입니다
- 여러분들 오전동안 하신 작업량입니다..
- 너무 적습니다. 말이 안되게 적은 상황입니다.
- 오전 파트타임 잠깐 일하시는 분도 sql를 아예 모르시는 분도 100개를 찍어내고 있는 상황인데, 이 정도면, 문제가 심각한 수준이라고 생각이 됩니다.
- 각자 맡은 업무를 책임 있게 과제를 해주시면 감사하겠습니다. 한 목표 이루기 위해서 모인 것인 만큼, 열심히 책임감 있게 해나갔으면 좋겠습니다
- -해줄래, -해주겠니 등을 사용 지양하고, 해라체, 해체 등 간결한 종결어미로 작성해야 합니다. '-해줘'라고 끝나는 종결어미로 사용하거나 얼마야, 뭐야 등 간결하게 사용하도록 해주세요.
- 기존 : 컬럼별로 수량을 알려줘 -> ~별로 select 컬럼과 집계함수를 보여줘
- select 된 컬럼은 태깅 작업을 해야해서 명시해주는 것이 좋음
- ~명은 붙여서 쓰기
- 20번 넘어가면 작업 불가능, 형식 복붙 금지
- 띄어쓰기 잘 하기
- 테이블에 주소 컬럼이 하나가 아닌 경우
- "지번주소에 전농동이 포함되어 있는" 같은 형태로 고쳐서 써야함
- sql로 넘어오면서 000~이 생김 따라서 가급적 like로만 써주기
- group by시 무조건 무엇이 아니라 조회하고 싶은 데이터를 기준으로 정해짐
- 집계함수 단독사용 가능
* 종결어미 중 '알아봐줘' 사용 불가
* 내일 오전에 코드리뷰
* 현재 모델은 여러개의 화각에 대해 학습 된 5개의 모델을 짬뽕시켜 놓은 것이라 투기행위 인식률이 떨어질 수도 있음
* 따라서 각각 1개의 화각에 대해 학습 된 모델을 주신다고 하심
* 필요없는 화각만 골라내면 될듯
* 객체에 대한 Threshold 낮추기
* 사람(객체)에 대한 confidence 출력하기
* run_process의 실제 현장에서 사용하는 모델로 바꿔보기
* 명백히 투기행위인 사진들만 추려서 해당 사진만 모델에 넣고 돌려보기
* 이 때, 투기 행위에 대한 confidence와 객체에 대한 confidence가 둘 다 이미지 위에 표시되게 변경하기
* 업무지시 없음
* 업무지시 없음
* 테스트셋 다양화를 위해 내일 오전에 인턴들 다 모아서 테스트셋 찍기로 함
* TensorRT에서 Engine 뽑아내는 법 여쭤보기
* 오늘 세미나 일정이 있었으나, 회사 사정으로 잠정 연기됨
* x86과 ARM 아키텍쳐의 yolov5 모델을 전부 TensorRT 모델로 교체 완료했음
* 오후에는 교체 된 모델이 탑재된 ARM 아키텍쳐로 직접 테스트 해보기로 함
* 업무지시 없음
* 업무지시 없음
<cctv>
* 모델 평가에 필요한 테스트셋이 300장이 아니라 500장이었음
* 500장 중 400장(약 80%)은 투기행위, 나머지 100장은 사람 검출 사진과 배경 검출 사진으로 뽑기로 함.
* 사람 검출사진과 배경 검출사진의 배율은 아직 정하기 애매해서 일단 둘다 100장씩 뽑아달라고 하심
* 새로 영상 찍을 필요는 없고 기존에 1차적으로 추렸던 1000여장의 사진 중에서 추가로 뽑기로 함
<canvas>
* 일단 DB 구조를 확인하고 있으라고 하셨다.
* 172~는 Docker에서 postgre_dev 포트와 dev_web을 연결해주기 위해 사용하는 host이므로 127.0.0.1 localhost를 사용하면 된다고 하심
<cctv>
필요한 테스트 셋
- 사람검출 이미지 400장
- 배경 이미지 100장
- FP (사람 검출, 투기 행위) 되는대로 구해보기
- 투기행위 사진 400장 : 연구원님이 해주신다고 하심
## (15:01 완료) ##
구축된 데이터셋 모델에 돌려보기
- 사람검출 모델
- 사람 이미지 400장
- 배경 이미지 100장
- 투기행위 감지 모델
- 투기행위 400장
- 배경 이미지 100장
## (16:18 완료) ##
dumping TP에서 39장 탈락됨 -> 다시 채워넣기
<cctv>
model 돌리는 코드 밑에 PyQT를 연결하는 작업 수행
이미지 경로만 설정하면 문제없이 돌아가도록 종속성 제거
다른 팀에서 라벨링을 끝낸 선별 이미지 실제로 넣고 결과 확인
<canvas>
다음주부터 바로 페이지 제작에 들어갈 듯 하다.
로그인 정보와 DB를 잘 연결할 수 있도록 오늘까지는 DB 구조를 정확히 파악해야할 것 같다.
<canvas>
* 퍼블리싱 된 파일을 장고와 연결
* 비즈니스 코딩하기
* DB 연결하기 python manage.py inspectdb > models.py
<canvas>
* 서버 DB와 연결 (migration하지 않기)
* 서버 DB와 회원가입 폼 형식이 다름
- 일단 기능 구현에 초점 맞추고 나중에 수정하기
* 기존 아이디, 이메일 분리 구조에서 아이디와 이메일을 동일하게 취급하기
* 이메일은 일단 sortable_name에 저장하기
* Django rest framework 사용하기
* AJAX 사용해서 중복확인 구현
<canvas>
* 백단은 후에 ruby로 컨버팅될 수도 있음 -> Django rest framework 사용해서 고도화 작업
* 새롭게 수정된 퍼블리싱 파일 적용하기
* 중복확인에 대한 유효성 검사 추가
<canvas>
* 백앤드를 ruby로 전환할 예정이라고 함.
* 해당 부분에 대해 정확한 사안이 결정될 때까지 아래 4가지 공부
1. restframework api decoration
2. restframework serializer
3. middleware (filter -> API 요청이 들어오면 middleware를 거쳐감)
4. django signal (triger -> 어떠한 동작이 발생되면 자동으로 수행되는 것)
사내에서 독거노인 이상징후 탐지 프로젝트를 진행할 계획
따라서 해당 프로젝트에 대한 ERD, use case를 그려달라고 하심.