Пока ещё не завершены исследования. Нехватает препроцессинга. Есть идеи как его лучше сделать?
И как видно артефакты с линиями хотя они в классе "не углы" надо разбираться хотя думаю понятно где надо подкрутить.



Посмотреть код
 https://yadi.sk/d/hHvD1-9Z3W6rAB
 https://yadi.sk/d/hHvD1-9Z3W6rABДобавлено спустя 3 минуты 35 секунд:
У уточнение по методу Edward Rosten. За основу была взята идея классификации углов и а после классифицировать и сгенерировать код из кучи if. Для классификации использовался датасет, который опять таки был сгенерирован - реализация собственная как что там у Ростена уже не смотрел.
Как и ожидалось артифакты были в генераторе границ клякс.
- Код: Выделить всё
- procedure GenBlobsEdge(Person:TPerson);
 var bp:TBitmap;
 Vector1,Vector2:TArrayReal;
 i,j,k:Integer;
 P0,P1,P2,P3:TPoint;
 begin
 Person.Text:='Края клякс';
 bp:=TBitmap.Create;
 bp.Width:=5;
 bp.Height:=5;
 bp.Canvas.Brush.Style:=bsSolid;
 for i:=-36 to 36 do
 for j:=-4 to +4 do
 for k:=-4 to +4 do
 begin
 bp.Canvas.Brush.Color:=clWhite;
 bp.canvas.FillRect(bp.Canvas.ClipRect);
 bp.Canvas.Brush.Color:=clBlack;
 P0.X:=+0; P0.Y:=-10;
 P1.X:=10; P1.Y:=-10;
 P2.X:=10; P2.Y:=+10;
 P3.X:=+0; P3.Y:=+10;
 p0:=Rotate(P0,i/36*Pi);
 p1:=Rotate(P1,i/36*Pi);
 p2:=Rotate(P2,i/36*Pi);
 p3:=Rotate(P3,i/36*Pi);
 P0.X:=P0.X+j; P0.Y:=P0.Y+k;
 P1.X:=P1.X+j; P1.Y:=P1.Y+k;
 P2.X:=P2.X+j; P2.Y:=P2.Y+k;
 P3.X:=P3.X+j; P3.Y:=P3.Y+k;
 bp.Canvas.Polygon([P0,P1,P2,P3]);
 Form1.Image1.Canvas.Draw(0,0, bp);
 Form1.Image1.Refresh;
 Vector1:=BitmapToVector(bp);
 Vector2:=NegVector(Vector1);
 Person.NewPhoto.Data:=Vector1;
 Person.NewPhoto.Data:=Vector2;
 end;
 bp.Free;
 end;
Самое удивительное что в коде для генерации углов углами оказалось только 60% остальные не углы.
Собственно зачем нужен детектор углов? В компьютерном зрении есть 3 вида особых точек углы границы и поля клякс. Чем меньше точек тем быстрее идёт обработка. Один и способов увеличить скорость дальнейших алгоритмов это найти особые точки которых немного.
Углы применяют для создания 3D моделей по серии снимков. Для склейки изображений в панорамы. Для трекинга объектов в кадре. К примеру отслеживания губ и бровей при создания эмоджи.
Так как большинство дальнейших алгоритмов идут с видео. А продемонстрировать пока нечего. Собственно хотелось услышать в какой форме или вернее какой дизайн для демонстрации углового детектора выбрать? Собственно хочу услышать ваши предложения.





 (то есть все что отдаленно напоминает  нечто прямоугольное обводить 3д-рамочкой  и желательно с размерами   )
  (то есть все что отдаленно напоминает  нечто прямоугольное обводить 3д-рамочкой  и желательно с размерами   )   
 ) разобраться с кодом более подробно ...
 ) разобраться с кодом более подробно ... 

