분류 전체보기 541

욜로(YOLO) Cannot load image, Couldn't open file, Segmentation fault 에러 해결 방법

YOLO로 객체 탐지(Object Detection)을 할 일이 생겨서 이런저런 설정을 해주면서 작업을 진행했다. Bounding Box를 치고 Labelling을 하는 작업도 순조롭게 마치고, 이제 리눅스 환경으로 옮겨서 라벨링한 데이터들을 darknet 내부 디렉토리에 적절하게 위치시키고서 학습을 시키려니까 문제가 발생했다. Cannot load image ~~ Couldn't open file ~~ dimension과 wieght 불러오는 등 설정 파일까지 다 읽어온 상태에서 학습용 이미지 파일과 bounding box 좌표값을 담은 같은 이름의 파일을 불러오지 못하는 에러가 잔뜩 발생했다. 이럴 때는 대부분 아래의 방식을 따르면 해결이 된다. 아래 내용은 실제 darknet repository인 ..

BOJ] 14716 - 현수막(충남대학교, 생각하는 프로그래밍 대회 A번)

제한사항 2초, 512MB 입력 첫 번째 줄에는 현수막의 크기인 M와 N가 주어진다. (1 ≤ M, N ≤ 250) 두 번째 줄부터 M+1 번째 줄까지 현수막의 정보가 1과 0으로 주어지며, 1과 0을 제외한 입력은 주어지지 않는다. 출력 혁진이의 생각대로 프로그램을 구현했을 때, 현수막에서 글자의 개수가 몇 개인지 출력하여라. 풀이 방법 BFS, DFS 구분하지 않고 뭘 하든 될 줄 알았는데 BFS를 사용하니까 메모리 초과가 발생했다. 그래서 방향을 틀어 DFS를 사용해서 문제를 해결했다. 사실 BFS로 문제를 해결할 때, 이미 Queue 안에 들어간 내용을 따로 체크해줬으면 메모리 초과가 발생하지 않았을 것 같다. 소스코드 #include #include using namespace std; vect..

판다스(Pandas) shift를 활용해서 Sliding Window 만들기

시계열 데이터를 활용해서 수치를 예측하는 모델을 만들 때 사용하는 다양한 방법 중에 Sliding Window를 활용해 과거 데이터를 feature로 사용하는 방법이 있다. 이 방법은 시계열 데이터를 활용한 예측에서 과거 데이터들을 바탕으로 예측을 수행하므로 과거 데이터들을 포함하는 feature를 만들어줘야 한다. 이렇게 feature로 사용할 과거 기간에 대해서 lookBack, lag, delay 등 다양한 명칭으로 부르는데, 통상적으로 lag이라는 명칭을 많이 사용하는 것 같다. 예시 코드에서는 lookBack으로 작성했다. 다양한 방법으로 lag을 줘서 Sliding Window를 만들 수 있지만, 손수 Sliding Window와 lag 개념을 넣으려면 거기에 맞게 행을 추가해줘야 하고, 데이..

CNN(VGG-16)을 활용한 불량품 검출(Defects Detection) 분류 모델

CNN을 활용해서 어떤 제품의 이미지를 보고 불량인지 정상품인지 분류하는 모델을 만들어봤다. 활용 데이터셋 원래의 데이터셋(NEU Surface Defect DB)은 크랙, 기름때, 스크래치 같은 다양한 종류의 열연강판에 대한 불량품들만 모아놓은 데이터셋이다. 여기서 멀쩡한 부분들만 잘라서 분류해놓은 데이터셋을 활용했다. 총 1344장의 이미지가 있고, 정상은 952장 불량은 392장으로 이루어져 있다. 클래스 비율에 맞춰 8:1:1 비율로 train, validation, test를 나눴다. https://github.com/kazenokizi/defect_classification/blob/master/data.rar 모델 구현 케라스를 활용했는데, 직접 레이어를 쌓지 않고 VGG16의 Weight를..

Git Push 과정에서 'the remote end hung up unexpectedly ' 에러 해결 방법

To fix this, please transfer ownership to an admininstrator. 원격 리포지토리에 푸시하는 동안 오류가 발생했습니다. Git failed with a fatal error. the remote end hung up unexpectedly Pushing to https://github.com/Twinparadox/Defects-Detection.git failed to push some refs to 'https://github.com/Twinparadox/Defects-Detection.git' Visual Studio를 자주 사용하는 편인데, 확장프로그램으로 연동되어 있는 GitHub Extension을 이용해 학습 데이터까지 한꺼번에 GitHub에 Push..

2019년을 회고하며..

반오십(25) 생각보다 반오십은 나에게 크게 다가오지 않았다. 스무 살을 시작하자마자 망가져 버렸던 몸이었기 때문에 오히려 20대 이래로 가장 몸 상태가 좋은 편에 속했을 정도였다. 체력적인 저하가 조금 오긴 했지만, 반대급부가 세게 오던 지난 20대의 삶보다는 훨씬 나은 상태였다. 지금의 상태를 잘 유지하고 체중 조절도 좀 해나가면서 건강 상태를 조금이라도 더 나아지게 하는 것을 최선의 목표로 하고 있다. 민간인일 수도, 아닐 수도 있습니다. 자세한 건 병무청에... 9월까지는 요즘 논란이 많은 사회복무요원 신분이었다. 복무 생활하면서 지금 논란이 되는 급의 문제는 없었지만, 이래저래 허술한 부분들이 없지 않아 있는 것 같다고 생각하고 있다. 각설하고, 일단 출퇴근하면서 대체 복무를 하는 상황이었기 때..

기타 2020.01.01

머신러닝(Machine Learning) 관련한 프로젝트 아이디어와 관련 툴

머신 러닝(Machine Learning) 학습을 하고 나면 기존의 유명 데이터셋들(유방암, 붓꽃, 와인 등)만 사용하는 것이 아닌, 다른 데이터셋을 활용해서 그럴싸한 프로젝트를 시도해보고 싶어진다. 유명 데이터셋들에서 파생된 간단한 모델들이 존재하긴 하지만, 그보다 더 다양한 데이터셋과 머신러닝 모델을 만들어보고 싶다면, 참고할만한 github repository를 하나 공유하려고 한다. https://github.com/NirantK/awesome-project-ideas NirantK/awesome-project-ideas Curated list of Machine Learning, NLP, Vision, Recommender Systems Project Ideas - NirantK/awesome-..

백준] 11008 - 복붙의 달인(ACM-ICPC Regionals)

시간 제한 : 2초 메모리 제한 : 256MB 문제 한신이는 대학교에서 "복붙의 달인"으로 유명하다. 한신이는 타이핑 속도가 느리기 때문에 대학에서 가능한 모든 일을 복붙으로 해결한다. 그는 n개의 문자를 입력하는데 있어서 n초의 시간이 걸리지만 뛰어난 "붙여넣기" 스킬을 이용하면 어떠한 개수의 문자도 단 1초만에 타이핑 할 수 있다. 만약 한신이가 "bana"를 복사한 상태에서 "banana"를 타이핑한다면, "bana" 붙여넣기 1초, 'n' 입력, 'a' 입력으로 총 3초가 걸린다. 한신이가 클립보드에 저장한 p를 알고 있을 때 s를 입력하는데 걸리는 최소 시간을 계산해보자! 입력 첫 번째 줄에는 테스트케이스의 개수 T(T ≤ 25)가 입력된다. 각 테스트케이스는 한 줄에 2개의 문자열 s와 p가 ..

라즈베리파이 멀티미디어 재생 패키지 및 OS 정리

오디오 alas-utils, mplayer 이미지 fbi 뷰어 터미널에서 이미지를 볼 수 있음 links2 뷰어 터미널에서 이미지를 봄 gimp 에디터 무료 이미지 편집기 동영상 Omxplayer cmd 방식의 재생기로 mplayer와 유사한 방식 낮은 리소스 점유율, 적은 버퍼링, 일시 정지, 빨리 감기 가능하나, 강제 중지 시 동영상이 닫히는게 아니라 reboot해야 함 VLC media player GUI 제공 재생기 터미널 외에도 GUI 통한 재생 가능 VLC가 기능상 우위지만, 리소스 요구량 증가 CUI인 cvlc openELEC 멀티미디어 특화 OS 각종 미디어 재생 가능

C언어] 시퀀스 포인트와 연산에 대한 이해

&& 연산자 앞 모든 식의 계산 완료. 첫번째 식에 따라 두번째 식은 평가하지 않을 수 있음. || 연산자 앞 모든 식의 계산 완료. 첫번째 식에 따라 두번째 식은 평가하지 않을 수 있음. , 연산자 앞 모든 식의 계산 완료. () 함수 호출 직전까지 모든 식의 계산 완료. ? 조건 판단 전 모든 식의 계산 완료. ; 직전의 모든 식의 계산 완료. if(), switch() 연결된 코드가 실행되기 전 모든 식의 계산 완료. while(), do-while() 반복될 코드가 실행되기 직전 모든 식의 계산 완료. for(;;) 각 세미콜론 직전에 모든 식의 계산이 완료. return 값 반환 전 모든 식의 계산이 완료. 흔히 시퀀스 포인트에만 초점을 두고 있어서 간과하고 넘어가는 부분이지만, 어느 특정 시점..