aboutsummaryrefslogtreecommitdiffstats
path: root/bsie/extractor/image
diff options
context:
space:
mode:
Diffstat (limited to 'bsie/extractor/image')
-rw-r--r--bsie/extractor/image/colors_spatial.py7
-rw-r--r--bsie/extractor/image/face/detect.py9
-rw-r--r--bsie/extractor/image/face/identify.py11
-rw-r--r--bsie/extractor/image/iptc.py13
-rw-r--r--bsie/extractor/image/photometrics.py7
5 files changed, 26 insertions, 21 deletions
diff --git a/bsie/extractor/image/colors_spatial.py b/bsie/extractor/image/colors_spatial.py
index e6661a9..bccefc1 100644
--- a/bsie/extractor/image/colors_spatial.py
+++ b/bsie/extractor/image/colors_spatial.py
@@ -8,7 +8,8 @@ import PIL.Image
import numpy as np
# bsie imports
-from bsie.utils import bsfs, node, ns
+from bsie.matcher import nodes
+from bsie.utils import bsfs, ns
# inner-module imports
from .. import base
@@ -115,10 +116,10 @@ class ColorsSpatial(base.Extractor):
def extract(
self,
- subject: node.Node,
+ subject: nodes.Entity,
content: PIL.Image.Image,
principals: typing.Iterable[bsfs.schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
+ ) -> typing.Iterator[typing.Tuple[nodes.Node, bsfs.schema.Predicate, typing.Any]]:
# check principals
if self.schema.predicate(self._predicate_name) not in principals:
# nothing to do; abort
diff --git a/bsie/extractor/image/face/detect.py b/bsie/extractor/image/face/detect.py
index 94e3a61..51d5659 100644
--- a/bsie/extractor/image/face/detect.py
+++ b/bsie/extractor/image/face/detect.py
@@ -7,7 +7,8 @@ import torch
from facenet_pytorch import MTCNN, InceptionResnetV1
# bsie imports
-from bsie.utils import bsfs, node, ns
+from bsie.matcher import nodes
+from bsie.utils import bsfs, ns
# inner-module imports
from ... import base
@@ -72,17 +73,17 @@ class FaceDetect(base.Extractor):
def extract(
self,
- subject: node.Node,
+ subject: nodes.Entity,
content: dict,
principals: typing.Iterable[bsfs.schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
+ ) -> typing.Iterator[typing.Tuple[nodes.Node, bsfs.schema.Predicate, typing.Any]]:
# check principals
if self.schema.predicate(ns.bse.face) not in principals:
# nothing to do; abort
return
for face in content:
- fnode = node.Node(ns.bsn.Face, ucid=face['ucid'])
+ fnode = nodes.Face(ucid=face['ucid'])
yield subject, ns.bse.face, fnode
yield fnode, bsf.x, face['x']
yield fnode, bsf.y, face['y']
diff --git a/bsie/extractor/image/face/identify.py b/bsie/extractor/image/face/identify.py
index 152f113..44a75c4 100644
--- a/bsie/extractor/image/face/identify.py
+++ b/bsie/extractor/image/face/identify.py
@@ -9,7 +9,8 @@ import numpy as np
import torch
# bsie imports
-from bsie.utils import bsfs, node, ns
+from bsie.matcher import nodes
+from bsie.utils import bsfs, ns
# inner-module imports
from ... import base
@@ -142,10 +143,10 @@ class FaceIdentify(base.Extractor):
def extract(
self,
- subject: node.Node,
+ subject: nodes.Entity,
content: typing.Any,
principals: typing.Iterable[bsfs.schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
+ ) -> typing.Iterator[typing.Tuple[nodes.Node, bsfs.schema.Predicate, typing.Any]]:
# check principals
#if self.schema.predicate(bsf.depicts) not in principals:
if self.schema.predicate(ns.bse.face) not in principals:
@@ -164,8 +165,8 @@ class FaceIdentify(base.Extractor):
lbl = bsfs.URI(self._id2name[idx]) # label (uri) of nearest neighbour
if lbl == self._restklasse: # suppress
continue
- pnode = node.Node(ns.bsn.Person, uri=lbl)
- fnode = node.Node(ns.bsn.Face, ucid=face['ucid'])
+ pnode = nodes.Person(uri=lbl)
+ fnode = nodes.Face(ucid=face['ucid'])
# emit triple
yield fnode, self.schema.predicate(bsf.depicts), pnode
# FIXME: emit subject -> face -> fnode?
diff --git a/bsie/extractor/image/iptc.py b/bsie/extractor/image/iptc.py
index 195eff7..0c03539 100644
--- a/bsie/extractor/image/iptc.py
+++ b/bsie/extractor/image/iptc.py
@@ -3,7 +3,8 @@
import typing
# bsie imports
-from bsie.utils import bsfs, node, ns
+from bsie.matcher import nodes
+from bsie.utils import bsfs, ns
# inner-module imports
from .. import base
@@ -41,10 +42,10 @@ class Iptc(base.Extractor):
def extract(
self,
- subject: node.Node,
+ subject: nodes.Entity,
content: dict,
principals: typing.Iterable[bsfs.schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
+ ) -> typing.Iterator[typing.Tuple[nodes.Node, bsfs.schema.Predicate, typing.Any]]:
for pred in principals:
# find callback
clbk = self._callmap.get(pred)
@@ -55,13 +56,13 @@ class Iptc(base.Extractor):
def _keywords(
self,
- subject: node.Node,
+ subject: nodes.Entity,
content: dict,
- ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
+ ) -> typing.Iterator[typing.Tuple[nodes.Node, bsfs.schema.Predicate, typing.Any]]:
if 'Iptc.Application2.Keywords' not in content:
return
for keyword in content['Iptc.Application2.Keywords']:
- tag = node.Node(ns.bsn.Tag, label=keyword)
+ tag = nodes.Tag(label=keyword)
yield subject, self.schema.predicate(ns.bse.tag), tag
yield tag, self.schema.predicate(ns.bst.label), keyword
diff --git a/bsie/extractor/image/photometrics.py b/bsie/extractor/image/photometrics.py
index 42eb3c8..4579b54 100644
--- a/bsie/extractor/image/photometrics.py
+++ b/bsie/extractor/image/photometrics.py
@@ -4,7 +4,8 @@ from fractions import Fraction
import typing
# bsie imports
-from bsie.utils import bsfs, node, ns
+from bsie.matcher import nodes
+from bsie.utils import bsfs, ns
# inner-module imports
from .. import base
@@ -107,10 +108,10 @@ class Exif(base.Extractor):
def extract(
self,
- subject: node.Node,
+ subject: nodes.Entity,
content: dict,
principals: typing.Iterable[bsfs.schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
+ ) -> typing.Iterator[typing.Tuple[nodes.Node, bsfs.schema.Predicate, typing.Any]]:
for pred in principals:
# find callback
clbk = self._callmap.get(pred)