Manav Rathi 1 year ago
parent
commit
fc1957be49

+ 7 - 3
web/apps/photos/src/services/machineLearning/yoloFaceDetectionService.ts

@@ -1,6 +1,12 @@
 import { workerBridge } from "@/next/worker/worker-bridge";
 import { euclidean } from "hdbscan";
-import { Box, Point, boxFromBoundingBox } from "services/ml/geom";
+import {
+    Box,
+    Dimensions,
+    Point,
+    boxFromBoundingBox,
+    newBox,
+} from "services/ml/geom";
 import {
     FaceDetection,
     FaceDetectionMethod,
@@ -14,13 +20,11 @@ import {
     scale,
     translate,
 } from "transformation-matrix";
-import { Dimensions } from "services/ml/geom";
 import {
     clamp,
     getPixelBilinear,
     normalizePixelBetween0And1,
 } from "utils/image";
-import { newBox } from "utils/machineLearning";
 
 class YoloFaceDetectionService implements FaceDetectionService {
     public method: Versioned<FaceDetectionMethod>;

+ 6 - 2
web/apps/photos/src/services/ml/geom.ts

@@ -21,8 +21,8 @@ export class Point {
 }
 
 export interface Dimensions {
-  width: number;
-  height: number;
+    width: number;
+    height: number;
 }
 
 export interface IBoundingBox {
@@ -39,6 +39,10 @@ export interface IRect {
     height: number;
 }
 
+export function newBox(x: number, y: number, width: number, height: number) {
+    return new Box({ x, y, width, height });
+}
+
 export const boxFromBoundingBox = ({
     left,
     top,

+ 1 - 9
web/apps/photos/src/utils/machineLearning/index.ts

@@ -18,20 +18,12 @@ import { getRenderableImage } from "utils/file";
 import { clamp, warpAffineFloat32List } from "utils/image";
 import mlIDbStorage from "utils/storage/mlIDbStorage";
 
-export function newBox(x: number, y: number, width: number, height: number) {
-    return new Box({ x, y, width, height });
-}
-
 function getBoxCenterPt(topLeft: Point, bottomRight: Point): Point {
     return topLeft.add(bottomRight.sub(topLeft).div(new Point(2, 2)));
 }
 
-function getBoxCenter(box: Box): Point {
-    return getBoxCenterPt(box.topLeft, box.bottomRight);
-}
-
 export function enlargeBox(box: Box, factor: number = 1.5) {
-    const center = getBoxCenter(box);
+    const center = getBoxCenterPt(box.topLeft, box.bottomRight);
     const size = new Point(box.width, box.height);
     const newHalfSize = new Point((factor * size.x) / 2, (factor * size.y) / 2);