## Normalize Matrix to 512?

jhz

### jhz (view profile)

さんによって質問されました 2019 年 5 月 21 日

### jhz (view profile)

さんによって コメントされました 2019 年 5 月 30 日

さんの 回答が採用されました
Dearl all, I have to normalize a matrix to some number (512).
Exactly, my question is related to feature descriptor matrix which I want to normalize to 512. Actually, I have to import feature descriptor into another program that only accepts feature descriptors that are normalized to 512. But I don't get how to normalize the feature descriptor matrix or what does it mean by normalized to 512. I found normalize function in matlab but I don't know how can I use it for this purpose.
Below is the exact line what program asked and I have to do.
[Descriptor Data] is a npoint x 128 unsigned char matrix.
Note the feature descriptors are normalized to 512.

#### 0 件のコメント

サインイン to comment.

## 1 件の回答

2019 年 5 月 21 日
採用された回答

I know next to nothing about .sift files but if you search for "512" in this link, you'll find the same instructions you shared but it doesn't describe the normalization process.
According to this resource (again, search for "512" on that page), the sift-based descriptors are L2-Normalized and subsequently multiplied by 512, then rounded to the nearest integer. The description also provides a way to verify that normalization was done correctly.
So, what is L2-normalization? It is a regularization method in machine learning that is better described by this site. Previous answers in this forum have shown that L2-Normalization is straightforward to perform in matlab.
Given all of that information, the normalization would look something like this
vnorm = round(v/norm(v) * 512);
but you'll need to verify that this is correct by diving into the methods on Koen's website (the 2nd link I shared). I want to be clear that this is where I'd start if I were you but by no means am I inserting confidence that this is what your program (which I've never used) requires. Note that this topic was also discussed here and here (search for "512" on those pages) and those reference agree with the above.

jhz

### jhz (view profile)

2019 年 5 月 28 日
Hello, thank you again. Yes you were right that SURF features are not the right data to be normalized. Actually, I tried the same process to normalize the SIFT feature descriptors found using the original sift binary in MATLAB and it worked (I matched temp.key file provided by Lowe in the sift folder and my features files and both are same). It means the SURF 'features' are not the right data to normalize.
But the questions is how they are different than SIFT descriptors and how can I convert SURF 'features' to SIFT descriptors?

2019 年 5 月 28 日
I suggest you start a new question on that topic so others might see it. Maybe someone who has experience working with those files can chip in.
jhz

### jhz (view profile)

2019 年 5 月 30 日
I followed your suggestion and poted new question here.

サインイン to comment.

Translated by