삼성노트앱은 마이크로소프트 스토어에 공개되어 있는데 일반 PC에서는 설치가 되지 않습니다.(갤럭시북만 가능) https://apps.microsoft.com/store/detail/samsung-notes/9NBLGGH43VHV?hl=ko-kr&gl=kr일반 PC는 직접 설치파일을 다운로드해서 설치를 해주면 됩니다. 확인결과 이전버전의 앱만 일반pc에서 사용가능합니다. 바로 아래 store에서 다운받는것은 더이상 되지 않습니다.제가 올린 구글드라이브 설치파일(이전버전)은 일반 pc에서 사용가능합니다. 아래 1월 18일 확인사항 내용 참조하시면 됩니다. 아래 사이트에서https://store.rg-adguard.net/ 빨간색 박스 부분에 아래 주소를 써주고https://www.microsoft.c..
BoT-SORT(Bag of tricks for SORT) SORT 시스템의 한계 ・칼만 필터 상태 벡터 SORT계에서는, 등속을 가정한 칼만 필터를 이용하고 있습니다. 칼만 필터의 사용은 가로폭(width)에서 부정확한 일이 있기 때문에 박스 비율을 이용하여 대응해 왔습니다. 그로인해 경계 박스 예측이 정확하지 않습니다. · 카메라 편차 통상 SORT계에서는, IoU 베이스의 매칭 혹은 코사인 유사도를 이용한 매칭이 행해집니다. IoU 기반 매칭은 예측 상자의 정확성에 크게 의존합니다. 그 때문에, 검출 정밀도가 내려가면, 당연히 매칭도 실패하기 쉬워져, 특히 카메라의 움직임에 의해 정밀도가 떨어진다고 할 수 있습니다. ・매칭 기법 SORT계 알고리즘에 있어서, 포인트 정보를 이용하는 IoU 기반의 매..
MOT (Multiple Object Tracking) 다중 객체 추적(MOT)의 목표는 비디오에서 객체를 감지하고 식별한 다음 높은 정확도로 궤적을 유지하여 객체 주위에 경계 상자를 그리는 것입니다. SORT(Simple Online and Realtime Tracking) 칼만필터로 예측값과 실제 IoU(intersection over union 교집합)의 결과를 비교해서 특정 임계값 이상을 같은ID라고 판단, IoU가 낮은 ID는 제거 합니다. score가 클수록 더 사각형이 일치합니다. 이 점수들을 IoUMatrix에 모아 둡니다. (a)는 이전 Kalman filter에서 나온 결과이고 (b)의 초록색은 현재 Detector에서 나온 박스 입니다. 이 둘을 IoU시킨 후 Hungarian에서 짝..
기존 sequence 모델(RNN) 기존 sequence transduction model들은 인코더와 디코더를 포함한 복잡한 recurrent, cnn에 기반합니다. RNN은 순환구조를 이루는 인공신경망의 한 종류입니다. 음성, 문자 등 순차적으로 등장하는 데이터 처리에 적합한 모델입니다. 시간이 흐르는 기준으로 펼쳐놓고 봐야 하기 때문에 순차적인 연산이 필요합니다.(인코더,디코더당 각 하나의RNN) Transformer 최근 1~2년 사이에 많은 모델들이 CNN기반->Transformer기반 모델입니다. Transformer구조를 사용한 Architecture가 수 많은 SOTA를 찍고 있습니다. ViT : An Image Worth 16 x 16 Words - Image Classification의..
포인터란? 포인터는 메모리에 주소를 포함하는 변수에 대한 일반적인 개념입니다. 이 주소는 다른 데이터를 참조하거나 "가리키고"있습니다. Rust에서 가장 일반적인 종류의 포인터는 4장에서 배운 참조입니다. 참조는 & 기호로 표시되며 참조가 가리키는 값을 차용합니다. 데이터를 참조하는 것 외에는 특별한 기능이 없으며 오버헤드도 없습니다. 반면 스마트 포인터는 포인터처럼 작동하지만 추가적인 메타데이터와 기능을 가진 데이터 구조입니다. 스마트포인터는 C++에서 시작되었으며 다른 언어에도 존재하기 때문에 스마트 포인터의 개념은 Rust에만 있는 것이 아닙니다. Rust에는 표준 라이브러리에 정의된 다양한 스마트 포인터가 있어 레퍼런스가 제공하는 기능 이상의 기능을 제공합니다. 일반적인 개념을 살펴보기 위해 참조..
파이썬의 예외 처리 LBYL 도약하기 전에 살펴보세요(Look before you leap). 이 코딩 스타일은 호출이나 조회를 하기 전에 명시적으로 전제 조건을 테스트합니다. 이 스타일은 많은 if 문이 있다는 특징이 있습니다. if key in mapping: return mapping[key] 멀티 스레드 환경에서 LBYL 접근 방식은 '보기'와 '도약' 사이에 경쟁 조건이 발생할 위험이 있습니다. EAFP 허락보다 용서받는 것이 더 쉽습니다(Easier to ask for forgiveness than permission). 이 코딩 스타일은 유효한 키 또는 속성이 있다고 가정하고, 가정이 거짓으로 판명되면 예외를 포착합니다. 이 깔끔하고 빠른 스타일은 많은 try except 블럭이 있다는 특징..
제네릭이란? 제네릭은 다양한 유형에 사용할 수 있는 코드를 작성할 수 있는 기능입니다. 함수, 구조체, 열거형 또는 특성을 제네릭 파라미터로 정의하면 다양한 데이터 유형에서 작동하는 재사용 가능한 코드를 만들 수 있습니다. 따라서 제네릭은 보다 유연하고 효율적인 코드를 작성하도록 도와줍니다. 제네릭 데이터 타입 제네릭은 여러 구체화된 타입을 사용할 수 있는 함수 시그너처나 구조체 같은 아이템을 정의할 때 사용한다. 함수 정의에서 사용하기 fn largest_i32(list: &[i32]) -> i32 { let mut largest = list[0]; for &item in list.iter() { if item > largest { largest = item; } } largest } fn larges..