[personal profile] chabapok
Просто внезапно подумалось - если взять фотографию человека, поставить точно посередине глаза точку и "развернуть" это фото относительно этой точки, то окружность станет прямоугольником, значит зрачек станет тоже черным прямоугольником. Это в идеале. На практике, конечно будет блик, скорей всего круглый. Поэтому, этот блик тоже можно "развернуть" и идентифицировать таким же образом. На этом приницпе, теоретически, можно сделать идентификацию круглых частей на фото. А пара таких частей - это глаза, значит и идентификацию лиц сделать можно.

Естественно, все это делать я не собирался, но мне стало интересно проверить эту гипотезу, поэтому я набросал шейдер для pixel bender-а.

1




Как видно из этой картинки, я не ошибся. Однако и прав я был лишь частично. Неможно поигравшись с шейдером и разными картинками, я понял, что реальный зрачек далеко не всегда черный, и далеко не всегда круглый. Кроме того, алгорим хорошо работает на зрачках, сфотографированных крупным планом, а в реальной жизни так не бывает.

Исходник шейдера:

<languageVersion: 1.0;>

kernel Pixelate
<   namespace: "";
    vendor: "chabapok";
    version : 2;
    description : "identify glaz test"; >
{
    parameter float x0 <minValue: 000.0; maxValue: 700.0; defaultValue:591.0;>;

    parameter float y0 <minValue: 0.0; maxValue: 700.0; defaultValue:318.0;>;


    parameter float sx<minValue: 0.0; maxValue:1.0;defaultValue:0.34;>;
    parameter float sy<minValue: 0.0; maxValue:2.0;defaultValue:1.25;>;

    input image4 inputImage;
    output pixel4 outputPixel;

    void
    evaluatePixel()
    {
        float2 dst = outCoord();
        float pi = 3.14159265358979;
      
        float2 sc = float2(
                    x0+dst[1]*sy*cos(dst[0]*2.0*pi*sx/360.0),
                    y0-dst[1]*sy*sin(dst[0]*2.0*pi*sx/360.0)  );
      
        outputPixel = sampleNearest(inputImage, sc);
    }
}

September 2025

S M T W T F S
  123456
78910111213
14151617181920
21222324252627
282930    

Style Credit

Expand Cut Tags

No cut tags