質問編集履歴

3

ソースプログラムの追加

2022/07/22 09:22

投稿

zumasan
zumasan

スコア2

test CHANGED
@@ -1 +1 @@
1
- 高次元の行列のコサイン類似度において、一の値を算出したいです。
1
+ 高次元の行列のコサイン類似度において、一行一列の値を算出したいです。
test CHANGED
File without changes

2

ソースプログラムの修正

2022/07/22 09:13

投稿

zumasan
zumasan

スコア2

test CHANGED
File without changes
test CHANGED
@@ -2,11 +2,11 @@
2
2
  高次元の行列のコサイン類似度を求めていますが、高次元の行列のコサイン類似度が算出されてしまいます。
3
3
 
4
4
  ### 実現したいこと
5
- 高次元の行列のコサイン類似度において、一のコサイン類似度の値を求めたいです。
5
+ 高次元の行列のコサイン類似度において、一行一列のコサイン類似度の値を求めたいです。
6
6
 
7
7
  ### 発生している問題
8
8
  以下の二つの高次元の行列のコサイン類似度を求めると、
9
- X=[[ 64 29 2 ... 253 255 31]
9
+ X=desc1=[[ 64 29 2 ... 253 255 31]
10
10
  [ 1 0 14 ... 253 255 63]
11
11
  [ 1 8 30 ... 123 255 56]
12
12
  ...
@@ -14,7 +14,7 @@
14
14
  [ 33 50 108 ... 249 255 32]
15
15
  [ 52 79 119 ... 255 143 62]]
16
16
 
17
- Y=[[ 1 22 118 ... 253 255 60]
17
+ Y=desc2=[[ 1 22 118 ... 253 255 60]
18
18
  [ 33 6 124 ... 255 255 32]
19
19
  [ 3 130 253 ... 40 245 10]
20
20
  ...

1

ソースプログラムの追加

2022/07/22 09:05

投稿

zumasan
zumasan

スコア2

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ### 発生している問題
8
8
  以下の二つの高次元の行列のコサイン類似度を求めると、
9
- a=[[ 64 29 2 ... 253 255 31]
9
+ X=[[ 64 29 2 ... 253 255 31]
10
10
  [ 1 0 14 ... 253 255 63]
11
11
  [ 1 8 30 ... 123 255 56]
12
12
  ...
@@ -14,7 +14,7 @@
14
14
  [ 33 50 108 ... 249 255 32]
15
15
  [ 52 79 119 ... 255 143 62]]
16
16
 
17
- b=[[ 1 22 118 ... 253 255 60]
17
+ Y=[[ 1 22 118 ... 253 255 60]
18
18
  [ 33 6 124 ... 255 255 32]
19
19
  [ 3 130 253 ... 40 245 10]
20
20
  ...
@@ -38,7 +38,37 @@
38
38
  [9.18646615e-06 1.21596480e-05 3.48338913e-06 ... 6.52068492e-06
39
39
  4.78020407e-07 1.35102260e-05]]
40
40
 
41
+ ### 全体のソースプログラム
42
+ import cv2
43
+ import numpy as np
44
+ import matplotlib.pyplot as plt
45
+
46
+ img1 = cv2.imread('/content/drive/My Drive/kaokao.png', cv2.IMREAD_GRAYSCALE)
47
+ img2 = cv2.imread('/content/drive/My Drive/masatoshikaoryouiki.png', cv2.IMREAD_GRAYSCALE)
48
+
49
+ akaze = cv2.AKAZE_create()
50
+ matcher = cv2.BFMatcher(cv2.NORM_HAMMING)
51
+
52
+ 特徴量検出
53
+ kp1, desc1 = akaze.detectAndCompute(img1, None)
54
+ kp2, desc2 = akaze.detectAndCompute(img2, None)
55
+
56
+ コサイン類似度計算
57
+ import numpy as np
58
+
59
+ def cos_similarity(X, Y):
60
+ Y = Y.T
61
+ return np.dot(X, Y)/(np.linalg.norm(X) * np.linalg.norm(Y, axis=0))
62
+
63
+ X = np.array(desc1)
64
+ Y = np.array(desc2)
65
+
66
+ print(cos_similarity(X, Y))
41
67
 
42
68
 
43
69
 
44
70
 
71
+
72
+
73
+
74
+