○ [2020, Computer Vision] Python 및 OpenCV 를 사용한 레거시 CCTV 연동 타임머신 녹화 시스템 개발
Legacy (이미 설치되어 존재하는) CCTV 시스템은 공장 및 사업장 내부의 모습을 감시할 목적으로 설치되어 있습니다. 이러한 CCTV 시스템은 오랜 시간 전에 설치된 경우 (10년 이상) 해상도가 낮고 (320px X 240px 수준 등) 별도의 녹화시스템 없이 단순히 네트워크 IP 기반으로 시청만 가능한 형태로 준공된 경우가 많습니다. 추가적인 DVR (Digital Video Recorder) 을 투자하여 발생하는 지출 등을 대체하기 위해 동일한 네트워크 내에서 PC 및 저장공간을 추가하는 것 만으로도 영상을 자동으로 수집하여 저장할 수 있는 시스템을 만들었습니다. 본 개발 사례의 경우, 10개 개소에서 수신되는 채널이 약 180여개 정도 였으며, 단순 시청기능만 있는 상태였습니다. 이에 공장별로 동시에 채널별 영상을 수신 후, 이를 'n by m' 매트릭스 형태로 조합하였으며 (예를 들어, 35개의 채널이 있을 경우 가로 5, 세로 7개로 배열하여 1개의 단일 Image로 재구성) 조합된 영상은 '현재날짜 + 현재시각 + 장소명'.jpg 형태로 자동으로 저장됩니다. 위의 과정을 하루동안 거치면 하루에 발생하는 1개 개소당 파일 수는 약 5,000~20,000 장 정도가 생성되며, 10개 개소일 경우 약 50,000~200,000장 수준까지 생성되어 파일 취급이 어려워 집니다. 이에 날짜별로 구분하여 1일이 지났을 때, 그 전날에 수집된 다량의 jpeg 파일을 시간순으로 정렬 후 1개의 동영상 (mp4, MPEG-4) 파일로 연결하여 생성하여 사용자가 탐색할 수 있도록 구성하였습니다. 동영상 중의 매 frame 상단에 장면별 기록시각 및 장소명을 기록하여 시간 분석에 용이하며 동영상 생성 후 남는 불필요 jpeg 파일은 자동적으로 삭제됩니다. 본 기술은 저사양 PC에서도 큰 부하 없이 가동되며 (GPU 및 고사양급 PC 불필요) Anaconda3 및 OpenCV 환경에서도 구현이 가능합니다 (저장을 위한 충분한 양의 SSD 또는 HDD만 있으면 구현 가능)
|
|
○ [2020~2022, Python RPA] Data 분석을 위한 사무자동화 프로세스 개발
중공업 및 철강 생산공정 에서 근무하는 기술자 들은 품질, 생산성, 수율, 장애 등을 분석하기 위해 일일 및 주단위로 Data를 추출하여 Trend를 분석하고 이상 발생 및 원인을 분석하는 작업을 진행하고 있습니다. 이러한 작업은 SQL 실행을 통한 Data 추출, Excel을 활용한 Data 전처리 및 Graph 분석, 최종 Report 정리를 통한 결과 정리 등의 순서로 이루어지며 상당부분 사무 수작업으로 진행하는 경우가 대부분이고, 작업의 유형 중 반복적인 부분이 존재합니다. 이에 착안하여 Data 추출, Data 전처리, Report 제작 등 예외사항이 발생하지 않는 영역에 한정하여 수동 사무작업을 자동화하여 실행되는 기능을 Python 으로 개발하였습니다.
{Python RPA 개발 목록}
- 소재 현물번호 인식률 성능 자동분석 시스템 개발
- 제품 결속시 윤활살수 (표면보호 목적) 실적 여부 집계작업 SQL 자동화
- 원가 및 가공비 집계 및 산출기능 SQL 자동화 개발
- 철강제품 전장 형상 정밀도 및 압연온도 정상범위 자동 모니터링 기능 개발
- 일자-규격-용도별 철강재 Crop 절단길이 지시값 및 실제측정값 분포 산출
- 공장 일일 생산지표 (품질, 생산성, 장애, 비가동) 자동 산출
- 철강재 제강 주조 Schedule 자동 모니터링 기능 개발
- 빌렛 표면 흠 탐상결과 자동정리 및 불량재 분류 자동화
- 철강재 전장 냉각운전 (전장 온도, 냉각속도, 냉각 Blower 개방량 등) Micro Data 모니터링 기능 개발
- DBMS 연계 비가동 시계열 Graphic Report 자동화 RPA + HTML Report 자동생성
- 일일속보용 철강재 가공 처리량 속보 및 분석 Report 자동발행 RPA + HTML Report 자동생성
- 품질부적합, 실수율 자동산출 및 발생 RPA + HTML Report 자동생성
|
|
○ [2021, 독립 Project] 국내 TV 및 라디오 실시간 Watcher 개발 (Python, HTTP 라이브 스트리밍, 웹 크롤링)
- URL : http://tv.dexto.n-e.kr
- 집에 TV를 없앤 후, 혹시 보고자 하는 방송이 있을 때 해당 방송국의 On-Air 기능을 이용하는데, 방송 시청 전에 봐야하는 사전광고 및 링크를 찾아 들어가는 작업이 불편할 경우가 있었습니다. 이에, 특정 방송국에서 실시간으로 송출하는 Network Stream이 있을 경우, 고정 URL 또는 유효기간이 존재하는 가변형 URL 등을 자동으로 수집하여 통합된 Web Page에 다양한 채널을 한꺼번에 나열하여 생성하는 기능을 개발하였습니다. 본 Web Site는 Back-end 에서 3분 주기로 Python Script가 실행되어 내용을 갱신하고, Front-end 에서는 1분 주기로 새로고침이 되어 항상 최신화 된 스트리밍 주소로 유지됩니다
{ 수신 가능 채널 }
. KBS TV (1TV, 2TV, 24, World, Drame, Joy, Story, Life, Kids, 독도 Live)
. KBS RADIO (1Radio, 2Radio, 3Radio, 보이는 2Radio, 보이는 2FM, 1FM, 2FM, Hanminjok, World)
. TBS (TV, FM, eFM)
. 국회방송 (NATV), 국민방송 (K_TV), 아리랑TV (ARIRANG_TV), 국악방송 (GUGAK_TV)
. EBS (1TV, 2TV, KIDS, PLUS1, PLUS2, PLUSe, FM, Bandi)
. MBC TV (광주, 여수, 춘천, 대전, 목포, 울산, 전주, 제주)
. MBC FM (광주, 여수, 춘천, 대전, 목포, 울산, 전주, 제주)
. SBS TV (대전 TJB, 광주 KBC, 제주 JIBS, 대구 TBC, 울산 UBC, 청주 CJB, 부산 KNN, 강원 G1)
. SBS FM (대전 TJB, 광주 KBC, 제주 JIBS, 대구 TBC, 울산 UBC, 청주 CJB, 부산 KNN, 강원 G1)
. 국방TV (TV, 보이는 라디오, FM), 불교방송 (BTN, BBS), 기독교방송 (CTS), 천주교방송 (CPBC) 등
|
|
○ [2021, 독립 Project] 국내 TV 및 라디오 실시간 Recorder 개발 (Python, FFMPEG)
- URL : https://d3.dexto.n-e.kr/abcdef/webcast_REC.py
- 공중파 또는 케이블에서 방송하는 프로그램 중, 급하게 녹화를 해야할 필요가 있을 경우 PC의 TV 수신카드를 활용하여 녹화하거나, 스마트폰으로 화면을 촬영하거나, 콘텐츠 공급자가 업로드할 때가지 기다리는 경우가 종종 있습니다. 이러한 불편을 줄이고, 필요시 실시간으로 녹화를 할 수 있도록 하기 위해 Python 및 FFMPEG을 연계한 녹화기 Script를 만들었습니다. 채널 선택, 녹화 소요시간, 녹화 대기시간, 최종 Go/No-go 입력을 하면 조건에 따라 실행되며 현재 송출되고 있는 스트림을 그대로 받아 저장소에 기록하게 됩니다. 지금 시청하기 않으면 확보가 어려운 프로그램, 특히 지방에서 방송되어 업로드될 가능성이 많지 않는 프로그램 등을 송출되는 화질 그대로 보존하여 저장하고자 할 때 유용하게 사용할 수 있습니다. (FFMPEG은 사전에 설치되어 있어야 동작)
{ 주요 기능 }
. 채널 선택 : 0~N 순서 중 녹화를 원하는 채널을 번호로 선택 (기본값 : 00 KBS_1TV)
. 녹화 소요시간 선택 : 분 단위로 녹화를 해야할 시간을 지정 (기본값 : 60분)
. 녹화 대기시간 선택 : 예약 녹화 개념으로 대기할 시간을 지정 (기본값 : 0분, 즉시녹화)
. Run To Record? : 녹화를 진행할지 최종 확인 (yes or else)
|
|