hjxdl 0.1.65__py3-none-any.whl → 0.1.67__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hdl/_version.py +2 -2
- hdl/utils/llm/vis.py +64 -0
- {hjxdl-0.1.65.dist-info → hjxdl-0.1.67.dist-info}/METADATA +2 -1
- {hjxdl-0.1.65.dist-info → hjxdl-0.1.67.dist-info}/RECORD +6 -6
- {hjxdl-0.1.65.dist-info → hjxdl-0.1.67.dist-info}/WHEEL +0 -0
- {hjxdl-0.1.65.dist-info → hjxdl-0.1.67.dist-info}/top_level.txt +0 -0
hdl/_version.py
CHANGED
hdl/utils/llm/vis.py
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
from pathlib import Path
|
2
2
|
import json
|
3
|
+
import base64
|
4
|
+
from io import BytesIO
|
3
5
|
|
4
6
|
import torch
|
5
7
|
import numpy as np
|
6
8
|
from PIL import Image
|
7
9
|
# from transformers import ChineseCLIPProcessor, ChineseCLIPModel
|
8
10
|
import open_clip
|
11
|
+
import natsort
|
9
12
|
|
10
13
|
from ..database_tools.connect import conn_redis
|
11
14
|
|
@@ -16,6 +19,40 @@ __all__ = [
|
|
16
19
|
|
17
20
|
HF_HUB_PREFIX = "hf-hub:"
|
18
21
|
|
22
|
+
|
23
|
+
def imgfile_to_base64(img_dir: str):
|
24
|
+
"""Converts an image file to base64 format.
|
25
|
+
|
26
|
+
Args:
|
27
|
+
img_dir (str): The directory path of the image file.
|
28
|
+
|
29
|
+
Returns:
|
30
|
+
str: The image file converted to base64 format.
|
31
|
+
"""
|
32
|
+
with open(img_dir, 'rb') as file:
|
33
|
+
img_base64 = "data:image/jpeg;base64," + base64.b64encode(
|
34
|
+
file.read()
|
35
|
+
).decode('utf-8')
|
36
|
+
return img_base64
|
37
|
+
|
38
|
+
|
39
|
+
def imgbase64_to_pilimg(img_base64: str):
|
40
|
+
"""Converts a base64 encoded image to a PIL image.
|
41
|
+
|
42
|
+
Args:
|
43
|
+
img_base64 (str): Base64 encoded image string.
|
44
|
+
|
45
|
+
Returns:
|
46
|
+
PIL.Image: A PIL image object.
|
47
|
+
"""
|
48
|
+
img_pil = Image.open(
|
49
|
+
BytesIO(
|
50
|
+
base64.b64decode(img_base64.split(",")[-1])
|
51
|
+
)
|
52
|
+
)
|
53
|
+
return img_pil
|
54
|
+
|
55
|
+
|
19
56
|
class ImgHandler:
|
20
57
|
def __init__(
|
21
58
|
self,
|
@@ -203,4 +240,31 @@ class ImgHandler:
|
|
203
240
|
# > 0.9 很相似
|
204
241
|
return sims
|
205
242
|
|
243
|
+
def vec_pics_todb(self, images):
|
244
|
+
"""Save image features to a Redis database.
|
245
|
+
|
246
|
+
Args:
|
247
|
+
images (list): A list of image file paths.
|
248
|
+
|
249
|
+
Returns:
|
250
|
+
None
|
251
|
+
|
252
|
+
Example:
|
253
|
+
vec_pics_todb(images=['image1.jpg', 'image2.jpg'])
|
254
|
+
"""
|
255
|
+
sorted_imgs = natsort.natsorted(images)
|
256
|
+
img_feats = self.get_img_features(sorted_imgs, to_numpy=True)
|
257
|
+
pipeline = self.ih.db_conn.pipeline()
|
258
|
+
for img_file, emb in zip(sorted_imgs, img_feats):
|
259
|
+
# 初始化 Redis,先使用 img 文件名作为 Key 和 Value,后续再更新为图片特征向量
|
260
|
+
# pipeline.json().set(img_file, "$", img_file)
|
261
|
+
emb = emb.astype(np.float32).tolist()
|
262
|
+
emb_json = {
|
263
|
+
"emb": emb,
|
264
|
+
"data": imgfile_to_base64(img_file)
|
265
|
+
}
|
266
|
+
pipeline.json().set(img_file, "$", emb_json)
|
267
|
+
res = pipeline.execute()
|
268
|
+
print('redis set:', res)
|
269
|
+
|
206
270
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: hjxdl
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.67
|
4
4
|
Summary: A collection of functions for Jupyter notebooks
|
5
5
|
Home-page: https://github.com/huluxiaohuowa/hdl
|
6
6
|
Author: Jianxing Hu
|
@@ -23,6 +23,7 @@ Requires-Dist: redis[hiredis]
|
|
23
23
|
Requires-Dist: psycopg[binary]
|
24
24
|
Requires-Dist: Pillow
|
25
25
|
Requires-Dist: open-clip-torch
|
26
|
+
Requires-Dist: natsort
|
26
27
|
|
27
28
|
# DL framework by Jianxing
|
28
29
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
hdl/__init__.py,sha256=GffnD0jLJdhkd-vo989v40N90sQbofkayRBwxc6TVhQ,72
|
2
|
-
hdl/_version.py,sha256=
|
2
|
+
hdl/_version.py,sha256=FcaV_ACOb2e682h3wmnM4BoU2t4Y9YegpmtQ5bKxxNg,413
|
3
3
|
hdl/args/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
hdl/args/loss_args.py,sha256=s7YzSdd7IjD24rZvvOrxLLFqMZQb9YylxKeyelSdrTk,70
|
5
5
|
hdl/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -131,12 +131,12 @@ hdl/utils/llm/chat.py,sha256=sk7Lw5Oa30k-l2fnJknkMmTc5zkBeEKsR981aeFhH5s,11907
|
|
131
131
|
hdl/utils/llm/embs.py,sha256=Tf0FOYrOFZp7qQpEPiSCXzlgyHH0X9HVTUtsup74a9E,7174
|
132
132
|
hdl/utils/llm/extract.py,sha256=2sK_WJzmYIc8iuWaM9DA6Nw3_6q1O4lJ5pKpcZo-bBA,6512
|
133
133
|
hdl/utils/llm/llama_chat.py,sha256=watcHGOaz-bv3x-yDucYlGk5f8FiqfFhwWogrl334fk,4387
|
134
|
-
hdl/utils/llm/vis.py,sha256=
|
134
|
+
hdl/utils/llm/vis.py,sha256=dkrSWZJcnLFy5ZmT8aDTy2EdvfzWbYOwDjUL47BbmxI,8547
|
135
135
|
hdl/utils/schedulers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
136
136
|
hdl/utils/schedulers/norm_lr.py,sha256=bDwCmdEK-WkgxQMFBiMuchv8Mm7C0-GZJ6usm-PQk14,4461
|
137
137
|
hdl/utils/weather/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
138
138
|
hdl/utils/weather/weather.py,sha256=k11o6wM15kF8b9NMlEfrg68ak-SfSYLN3nOOflFUv-I,4381
|
139
|
-
hjxdl-0.1.
|
140
|
-
hjxdl-0.1.
|
141
|
-
hjxdl-0.1.
|
142
|
-
hjxdl-0.1.
|
139
|
+
hjxdl-0.1.67.dist-info/METADATA,sha256=dxyZsd_-4xjvQ6k6WZcaxsxYI6gJzQ38iO2CAFZf2OY,903
|
140
|
+
hjxdl-0.1.67.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
141
|
+
hjxdl-0.1.67.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
|
142
|
+
hjxdl-0.1.67.dist-info/RECORD,,
|
File without changes
|
File without changes
|