본문 바로가기

분류 전체보기178

[논문 리뷰] SSD: Single Shot MultiBox Detector Faster R-CNN에서는 학습하는 데에 여러 단계가 필요했습니다. 이 과정을 한 단계로 줄인 것이 SSD입니다.모델이 상당히 간단한 녀석이기 때문에 실제로 구현한다고 생각하면서 구현에 필요한 정보 기준으로 말씀드리겠습니다.기본 개념R-CNN에서는 selective search, faster-rcnn에서는 resion proposal network와 anchor box를 통해 물체가 있을만한 곳을 살펴보았습니다. 근데 selective search는 뭔가 정확하지 않을 것 같고 anchor box는 크기가 너무 정해져 있어 큰 물체와 작은 물체가 함께 있으면 둘 다 인식하기 어렵습니다.SSD에서는 같은 크기의 anchor box(논문에선 default box로 표현하는데 편의를 위해 anchor box.. 2024. 7. 20.
6496 - Cyclic antimonotonic permutations 문제 번역더보기다음 조건을 만족하는 길이가 $N$이고 1에서 $N$까지로 이루어 진 순열을 만들어야 합니다. 반단조성 : 인접한 세 수를 보았을 때 가운데 수가 가장 크거나 가장 작아야 합니다.사이클 : $i$번째에 있는 수 $p_i$를 $i$에서 $p_i$로 가는 포인터로 생각합시다. 1에서부터 시작해서 포인터를 따라가면 모든 위치를 다 방문하고 다시 1로 돌아와야 합니다.step 1더보기홀수 번째에서 1부터 $\lceil n/2 \rceil$까지, 짝수 번째에는 나머지가 들어온다고 생각합니다(홀짝이 반대여도 됩니다). 그럼 첫 번째 조건은 알아서 만족합니다.step 2더보기$N$이 짝수인 경우 먼저 생각해 봅시다. $N$이 4인 경우는 손으로 만들 수 있습니다.(2 4 1 3)$N$개일때의 답을 알고.. 2024. 7. 18.
java script - 프로젝트 1 - 3. 영어 한글 변환기 확장프로그램 세팅 이렇게 변환기를 만들긴 했는데 생각보다 사용하기가 불편했습니다. 그래서 크롬 확장 프로그램으로 만들어서 쉽게 쓸 수 있도록 해 볼 것입니다.크롬 공식 문서(https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world?hl=ko)를 참조해 만들었습니다. 우선 로고부터 만들어야 겠네요로고를 만들어 주는 프로그램을 만들어 봅시다.numpy와 matplotlib, cv2를 인스톨해 줍니다.갑자기 파이썬이 나왔지만 원래 이것저것 바꿔 쓰는거죠 뭐. python logo.py로 실행하면 이런 화면이 나옵니다. 저는 흰 바탕에 검은 글씨로 TR이라고 쓸 것입니다.이 화면은 500*600 크기입니다. 이것을 100*100크기 칸으로 나눈 다.. 2024. 7. 15.
java script - 프로젝트 1 - 4. 영어 한글 변환기 확장 프로그램 개시 확장 프로그램을 사용할 수 있게 할려면 개발자 등록을 해야 합니다.Chrome Web Store Developer Dashboard로 들어가고 개발자 등록을 해줍니다. 이때, 5달러 정도 비용이 발생합니다.잘 되었다면 이런 창이 나타날 것입니다. 프로젝트 폴더 압축한 다음 새 항목 추가를 해줍니다.2단계 인증해야 합니다 프로젝트를 올리면 뭔가 설정을 많이 해야 합니다. 안되어 있으면 뭔가 없다고 상세히 설명해 줍니다. 시키는 대로 다 작성하고 제출해 줍니다. 그럼 이렇게 검토 대기 중이라고 이야기 해 줍니다. 그 상태로 시간이 지나면 상태가 개시됨으로 바뀝니다. 이게 뭐 바뀌었다고 메일을 주거나 그런 건 없더라고요. 크롬 웹 스토어에서 잘 올라갔는지 확인할 수 있습니다. 2024. 7. 15.
16570 - 앞뒤가 맞는 수열 step 1더보기수열을 한번 뒤집어 봅시다. 그럼 앞에 있는 수를 제거하는게 아니라 뒤에 있는 수를 제거하는 문제로 바뀝니다. 그럼 저희는 각 위치마다 앞뒤계수를 구해주면 됩니다.step 2더보기앞뒤 계수를 다른말로 하면 접두사와 접미사가 얼마나 일치하는지 입니다. 그리고 이건 KMP에서 실패 함수를 만들때 구합니다. 실패함수를 만들어 준 뒤 가장 큰 숫자가 뭔지, 몇개나 나오는지를 계산해 줍니다.코드더보기#includeint b[2000000],f[2000000];int main() { int i, n,p=0,max=0,maxi=0; scanf("%d", &n); for (i = n; i >= 1; i--) scanf("%d", &b[i]); f[1] = 0; for (i = 2; i 2024. 7. 11.
10523 - 직선 찾기 step 1더보기더보기이 문제의 $p$의 최솟값이 20입니다. 왜 굳이 20으로 했을까요?step 2더보기더보기답이 있다고 가정해 봅시다. 임의의 점 하나를 찍었을 때 해당 점이 선 위에 있을 확률은 $\frac{p}{100}$입니다. 그럼 서로 다른 두 점을 찍었을 때 두 점 다 선 위에 있을 확률은 $\frac{p*p}{100*100} \ge \frac{1}{25}$입니다. 그럼아무 두 점을 잡습니다.이 직선 위에 점이 $p\%$이상 있는지 확인합니다.엄청 반복합니다.한 스텝 확인하는데 $N$만큼의 시간이 걸립니다. 그럼 500번쯤 돌리면 $p$가 20일 때 1.3665e-9의 확률로 틀릴 수 있습니다. 이정도 돌렸는데 직선을 못 찾았다면 그건 원래 직선이 없었다 보는게 맞겠죠코드더보기더보기#defi.. 2024. 7. 11.