반응형

개발 기록 18

MMCV, MMDetection에 적응하기

Document를 처음부터 정독하는것은 오래 걸릴 거 같아서, 필요할 떄마다 찾아서 여기에 정리해두려고 한다. MMCV 의 Registry (tistory.com) MMCV 의 Registry https://mmcv.readthedocs.io/en/latest/understand_mmcv/registry.html Registry — mmcv 1.3.16 documentation Registry MMCV implements registry to manage different modules that share similar functionalities, e.g., backbones, head, and necks, in detectors. Mos better-tomorrow.tistory.com

Implementation of Weights in 'Understanding Imbalanced Semantic Segmentation Through Neural Collapse' : 가중치 구현 해결!

'Understanding Imbalanced Semantic Segmentation Through Neural Collapse'의 code가 아직 공개되지 않아서, 구현을 시도하던 중, 다음 수식을 구현하는데에서 문제가 있었다. 다른 방정식을 통한 풀이가 있을까 싶어서 찾다가, 딱히 방법이 없다싶어서 다음과 같이 optimization problem으로 구성해서 해결을 시도했다. import torch import numpy as np def objective_function(W, num_classes=20): """ Define the objective function. The objective is to make the dot product of columns of W with themselves ..

[OpenCV / PIL] 'int' object is not subscriptable Error

Problem OpenCV로 촬영 혹은 가져온 사진을 PIL을 이용해서 가공하려고하면 에러가 뜬다. 아마 int is not subscriptable이라고 뜰 것이다. 일부러 일으켜보니 'int' object is not subscriptable 이었다. Solution 이를 해결하기 위해서는 opencv 이미지 자료형을 PIL에 맞도록 변환해야하는데, 이를 위해서는 두 가지 과정을 거쳐야한다. img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img=Image.fromarray(img) BGR을 RGB로 순서를 바꿔주고, PIL.Image.fromarray(img)로 PIL에 맞는 자료형으로 변환한다. 정리 소스코드 총집본?은 다음과 같다. 아, 참고로 기존에 ..

[VSCode 에러] The Python path in your debug configuration is invalid.

Ctrl + Shift + P를 눌러서 Python: Select Interpreter 선택한 후, 원하는 버전의 파이썬 인터프리터를 선택하면 되는데,,,, 난 안된다 왜지?? 검색해보니 위의 작업을하면 settings.json 파일이 생성되어야하는데, 그러지 아니하였다. 작업폴더가 여러개여서 생기는 문제인 것 같아 작업 폴더를 하나로 줄여보니 바로 해결되었다. vscode는 기본적으로 작업 폴더를 하나로 지정해야 에러가 덜 뜨는 것 같다.

라즈베리 파이에서 cv2.waitKey 무반응 에러

OpenCV waitKey 함수 간단 설명 : 네이버 블로그 (naver.com) OpenCV waitKey 함수 간단 설명 waitKey( 키 입력 대기 시간 ms) 키 입력 대기 시간 함수 매개 변수로 넣는 키 입력 대기 시간은 ms 단위... blog.naver.com import cv2 frameWidth = 640 frameHeight = 480 cap = cv2.VideoCapture(0) cap.set(3, frameWidth) # Width cap.set(4, frameHeight) # Height cap.set(10, 150) # Brightness while True: success, img = cap.read() cv2.imshow("",img) if cv2.waitKey(0) and..

아두이노 컴파일 시 error: cannot convert 'USBSerial*' to 'HardwareSerial*' in assignment 문제

error: cannot convert 'USBSerial*' to 'HardwareSerial*' in assignment 최근 팀프로젝트를 하는 중, 아두이노에서 .ino파일과 .cpp, .h 파일을 동시에 컴파일 하는 일이 있었다. 그런데 이런 에러가 떴다. In file included from /home/pjs/Arduino/libraries/Rosserial_Arduino_Library/src/ros.h:39:0, from /tmp/arduino_modified_sketch_218835/h_Position.ino:20: /home/pjs/Arduino/libraries/Rosserial_Arduino_Library/src/ArduinoHardware.h: In constructor 'Ardui..

행렬 계산기 개발하며 배운 것 - Call by value, Call by Reference, 등가포인터, 다차원배열 등...

구조체 선언 시에는 초기화가 불가능하다. visual studio에서는 가능했었던 것으로 기억하는데, GCC를 이용해서 컴파일 할 때에는 이게 안된다. 참고할 만한 링크 https://www.linuxquestions.org/questions/programming-9/gcc-error-%91foo%92-has-no-member-named-%91bar%92-877951/ 함수(기능)별로 구분하고 그에 해당하는 기능들을 하나씩 추가해서 테스트 우선해보는 방식으로 작성하는 것이 좋다. Call by value, Call by reference를 구분해야만한다. C언어는 공식적으로 Call by value만을 지원한다. 그리고 Call by reference를 pointer를 통해서 흉내낸다. 다른 언어보다 C..

행렬 계산기 개발 일지 - 8

남은 자료형에 의한 에러, indices의 쓰레기값 미관리에 의한 에러, call by pointer 문제까지 모두 해결하였다. 텍스트를 행렬로 바꾸는기능은 어떻게 완성을 했다. 겨우 이 정도 사이즈의 프로그램이긴 하지만, 디버거를 제대로 써본적도 처음이라 뭐가 뭔지도 제대로 모르고 우왕좌왕하고 너무 정신없었다. 그리고 무엇보다 아직 언어의 이해도가 충분하지 않다는 것을 알게 되었다. call by value와 call by reference(C언어의 경우에는 pointer로 이를 대체한다.)를 구분을 못했다는 게 좀 컸던 거 같다. 그리고 다차원배열을 등가 포인터로 변환하는 것도 제대로 몰랐었고. 일단은 계산기 개발은 여기서 멈추고, C언어 자체에 대한 공부를 더 깊이있게하고, 컴퓨터구조와 운영체제 공..

행렬 계산기 개발 일지 - 7

문제가 있는 함수 를 아예 따로 때와서 디버깅을 했다. 하면서 느낀건... 함수 내부를 복잡하게 하느니, 차라리 하나의 기능에 대해서 하나의 함수를 반드시 만들자. 자료형 오류는 항상 쉽게 발생한다. 동적타이핑이 되는 언어가 아니라면 반드시 자료형에 대한 설계도 프로그래밍 전에 하자. 코드에 손대기 전에 프로그램 설계를 반드시 하자....라고 할 때 하자...라고 할 때 하자...라고 할 때 하자... 아예 test.c로 이름 붙이고 새로 작성한 함수. 아래는 디버깅 결과다. 다행히도 에러도 경고도 안뜬다. 기쁘다. #include #include #include #define TEXT_LENGTH 512 #define MATMAXNUMBER 10 #define ERRORTEST printf("no er..

반응형