DocumentationRecipesReferenceGraphQLChangelog
Log In

Adding assets to project

You can add assets to project using:

📘

The maximum number of assets in a project is 25,000.
If you need more, contact us at [email protected].
For video frame projects, to have a smooth interface, work on videos with less than 1,000 frames

Adding assets through your local workstation

Go to your project and then:

  1. From the All view, click on Add assets.
  2. Select Hosted by Kili.
  3. Drag & drop your asset files. Use one asset per file, max 500 files per batch.

Your data will be securely stored in a dedicated bucket on our cloud. Only you have access to it.

Adding video assets

For video data, Kili Technology lets you decide if you want to import your data as native video and annotate them as video or extract the video into a list of images (frames) and annotate them as individual images. For more information, refer to Labeling video assets.

Adding assets from the Web

Go to your project and then:

  1. From the All view, click on Add assets.
  2. Select From remote storage.
  3. Drag & drop the CSV file with URLs of the assets. Refer to Required CSV file format.

Your data remains hosted at its origin. No data is stored on Kili servers.

Required CSV file format

Create a CSV file with two columns: External ID, URL. Use one asset per line. Refer to this example:

externalId,url
image_1,https://images.pexels.com/photos/45209/purple-grapes-vineyard-napa-valley-napa-vineyard-45209.jpeg

Adding assets located on premise

The data will be streamed through the web browser and only available within your internal network.
If you are planning to use data located on your hard disk, for security reasons, you must use HTTPS with certificates certified by an authority. This means that you need a DNS which points to your files served locally. Follow this process:

  1. Set up your DNS.
  2. Generate a certificate.
  3. Create your server.
  4. Create a CSV file containing the URLs to the data you want to serve. Refer to Required CSV file format.
  5. Use the CSV file to add assets to your project. Refer to Adding assets from the Web.

🚧

  • If the local server is down, you will lose access to your data while using Kili Technology.
  • To provide external users access to the data and to set up localhost as your file server, it's necessary to display your localhost on the Internet. Follow this tutorial: Exposing localhost server to the Internet.
  • For security reasons, we avoid mixed content and enforce assets to be served over HTTPS (not HTTP). So all asset URLs must begin with https://.

Setting up your DNS

Setting up your DNS depends on the service that you use. For example, if you use Wordpress, from the https://wordpress.com/domains/manage page, create a domain name that points to your file server. The example domain that we will be using is: test-ssl.kili-technology.com.

Generating a certificate

Follow this procedure to generate a certificate that is signed by an authority:

  1. Run the following command:
certbot -d test-ssl.kili-technology.com --manual --logs-dir certbot --config-dir certbot --work-dir certbot --preferred-challenges dns certonly

📘

If certbot is missing, you can add it using your system's package manager.

  1. When prompted, add an email address.
    A message appears, listing the value that you must add to the subdomain:
Please deploy a DNS TXT record under the name:
_acme-challenge.test-ssl.kili-technology.com
with the following value:
<example-value>
  1. Log into your DNS provider and add the <example-value> to the provided subdomain. In our example, we're using _acme-challenge.test-ssl.kili-technology.com.

  2. Press Enter. Two files are created: fullchain.pem and privkey.pem.

Creating your server

Create a local server and add your files to it.

Here is an example of how to create a local server using python:

import ssl, os
from http.server import HTTPServer, SimpleHTTPRequestHandler
class Handler(SimpleHTTPRequestHandler):
    def send_response(self, *args, **kwargs):
        SimpleHTTPRequestHandler.send_response(self, *args, **kwargs)
        self.send_header('Access-Control-Allow-Origin', '*')
port = 443
httpd = HTTPServer(('0.0.0.0', port), Handler)
httpd.socket = ssl.wrap_socket(httpd.socket, keyfile='privkey.pem', certfile='fullchain.pem', server_side=True)
print("Server running")
httpd.serve_forever()

Save this code as server.py and place it in the same folder as fullchain.pem and privkey.pem. Then, run your server using the sudo python server.py command.

Adding assets using Kili API

Refer to our example recipe:

You can also follow examples in our Kili Python SDK.


Did this page help you?