PierreBrunelle commited on
Commit
061698e
·
verified ·
1 Parent(s): e598ab6

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +1 -41
README.md CHANGED
@@ -9,44 +9,4 @@ pinned: false
9
  [Installation](https://pixeltable.github.io/pixeltable/getting-started/) | [Documentation](https://pixeltable.readme.io/) | [API Reference](https://pixeltable.github.io/pixeltable/) | [Code Samples](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#-code-samples) | [Computer Vision](https://docs.pixeltable.com/docs/object-detection-in-videos) | [LLM](https://docs.pixeltable.com/docs/document-indexing-and-rag)
10
  </div>
11
 
12
- Pixeltable is a Python library providing a declarative interface for multimodal data (text, images, audio, video). It features built-in versioning, lineage tracking, and incremental updates, enabling users to **store**, **transform**, **index**, and **iterate** on data for their ML workflows. Data transformations, model inference, and custom logic are embedded as **computed columns**. **Pixeltable is persistent. Unlike in-memory Python libraries such as Pandas, Pixeltable is a database.**
13
-
14
- ## 🧱 Code Samples
15
-
16
- ### Text and image similarity search on video frames with embedding indexes
17
- ```python
18
- import pixeltable as pxt
19
- from pixeltable.functions.huggingface import clip_image, clip_text
20
- from pixeltable.iterators import FrameIterator
21
- import PIL.Image
22
-
23
- video_table = pxt.create_table('videos', {'video': pxt.VideoType()})
24
-
25
- video_table.insert([{'video': '/video.mp4'}])
26
-
27
- frames_view = pxt.create_view(
28
- 'frames', video_table, iterator=FrameIterator.create(video=video_table.video))
29
-
30
- @pxt.expr_udf
31
- def embed_image(img: PIL.Image.Image):
32
- return clip_image(img, model_id='openai/clip-vit-base-patch32')
33
-
34
- @pxt.expr_udf
35
- def str_embed(s: str):
36
- return clip_text(s, model_id='openai/clip-vit-base-patch32')
37
-
38
- # Create an index on the 'frame' column that allows text and image search
39
- frames_view.add_embedding_index('frame', string_embed=str_embed, image_embed=embed_image)
40
-
41
- # Now we will retrieve images based on a sample image
42
- sample_image = '/image.jpeg'
43
- sim = frames_view.frame.similarity(sample_image)
44
- frames_view.order_by(sim, asc=False).limit(5).select(frames_view.frame, sim=sim).collect()
45
-
46
- # Now we will retrieve images based on a string
47
- sample_text = 'red truck'
48
- sim = frames_view.frame.similarity(sample_text)
49
- frames_view.order_by(sim, asc=False).limit(5).select(frames_view.frame, sim=sim).collect()
50
-
51
- ```
52
- Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.com/docs/embedding-vector-indexes).
 
9
  [Installation](https://pixeltable.github.io/pixeltable/getting-started/) | [Documentation](https://pixeltable.readme.io/) | [API Reference](https://pixeltable.github.io/pixeltable/) | [Code Samples](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#-code-samples) | [Computer Vision](https://docs.pixeltable.com/docs/object-detection-in-videos) | [LLM](https://docs.pixeltable.com/docs/document-indexing-and-rag)
10
  </div>
11
 
12
+ Pixeltable is a Python library providing a declarative interface for multimodal data (text, images, audio, video). It features built-in versioning, lineage tracking, and incremental updates, enabling users to **store**, **transform**, **index**, and **iterate** on data for their ML workflows. Data transformations, model inference, and custom logic are embedded as **computed columns**. **Pixeltable is persistent. Unlike in-memory Python libraries such as Pandas, Pixeltable is a database.**