diff --git a/pydantic/utils.py b/pydantic/utils.py
--- a/pydantic/utils.py
+++ b/pydantic/utils.py
@@ -303,6 +303,13 @@ def to_camel(string: str) -> str:
     return ''.join(word.capitalize() for word in string.split('_'))
 
 
+def to_lower_camel(string: str) -> str:
+    if len(string) >= 1:
+        pascal_string = to_camel(string)
+        return pascal_string[0].lower() + pascal_string[1:]
+    return string.lower()
+
+
 T = TypeVar('T')
 
 

after a debate today with a fellow programmer I had my eyes opened to the fact that pascal case is a type of camel case... so the naming isn't wrong.

I think ill submit a PR of the second option, as I'm sure I'm not the only one that would make use of the `to_lower_camel()` function.
diff --git a/tests/test_utils.py b/tests/test_utils.py
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -37,6 +37,7 @@
     lenient_issubclass,
     path_type,
     smart_deepcopy,
+    to_lower_camel,
     truncate,
     unique_list,
 )
@@ -528,6 +529,18 @@ def test_undefined_pickle():
     assert undefined2 is Undefined
 
 
+def test_on_lower_camel_zero_length():
+    assert to_lower_camel('') == ''
+
+
+def test_on_lower_camel_one_length():
+    assert to_lower_camel('a') == 'a'
+
+
+def test_on_lower_camel_many_length():
+    assert to_lower_camel('i_like_turtles') == 'iLikeTurtles'
+
+
 def test_limited_dict():
     d = LimitedDict(10)
     d[1] = '1'

pydantic.utils.to_camel() is actually to_pascal()
### Checks

* [ y ] I added a descriptive title to this issue
* [ y ] I have searched (google, github) for similar issues and couldn't find anything
* [ y ] I have read and followed [the docs](https://pydantic-docs.helpmanual.io/) and still think this is a bug

# Bug

Output of `python -c "import pydantic.utils; print(pydantic.utils.version_info())"`:
```
             pydantic version: 1.8.1
            pydantic compiled: True
                 install path: /home/schlerp/projects/pelt-studio/venv/lib/python3.8/site-packages/pydantic
               python version: 3.8.5 (default, Sep  4 2020, 07:30:14)  [GCC 7.3.0]
                     platform: Linux-5.15.2-zen1-1-zen-x86_64-with-glibc2.10
     optional deps. installed: ['typing-extensions']
```

Camel case and pascal case are similar however, they differ by the capitalisation of the first letter. The current implementation of camel_case in pydantic us actually pascal case and not camel case at all. I suggest renaming this and also implementing a camel case. See below for code expressing the issue and suggested fix.

**Pascal Case** (aka init case or upper camel case)
All spaces/underscores removed and the start of every word is capitalised.

**Camel Case** (aka lower camel case)
All spaces and underscores removed and the start of every word, is capitalised, except the first word which is always lower case.


Issue:
```py
from pydantic.utils import to_camel

valid_pascal = "PascalCase"
valid_camel = "camelCase"

example = to_camel("i_shouldnt_be_capitalised")

assert valid_pascal == to_camel("pascal_case")
assert valid_camel != to_camel("camel_case")
```

suggested fix, rename `to_camel()` -> `to_pascal()`, and write new `to_camel()` function:

```py
def to_pascal(string: str) -> str:
    return "".join(word.capitalize() for word in string.split("_"))


def to_camel(string: str) -> str:
    if len(string) >= 1:
        pascal_string = to_pascal(string)
        return pascal_string[0].lower() + pascal_string[1:]
    return string.lower()

```

Alternatively, if there is code which will break because it is dependent on the `camel_case()` function remaining pascal case, then i propose we implement a new function called `to_lower_camel()` which implements the first letter lower case variant:

```py
def to_camel(string: str) -> str:
    return "".join(word.capitalize() for word in string.split("_"))


def to_lower_camel(string: str) -> str:
    if len(string) >= 1:
        pascal_string = to_camel(string)
        return pascal_string[0].lower() + pascal_string[1:]
    return string.lower()

```


tests/test_utils.py::test_import_module tests/test_utils.py::test_import_module_invalid tests/test_utils.py::test_import_no_attr tests/test_utils.py::test_display_as_type[str-str] tests/test_utils.py::test_display_as_type[string-str] tests/test_utils.py::test_display_as_type[value2-Union[str, tests/test_utils.py::test_display_as_type[list-list] tests/test_utils.py::test_lenient_issubclass tests/test_utils.py::test_lenient_issubclass_is_lenient tests/test_utils.py::test_truncate[object-<class tests/test_utils.py::test_truncate[abcdefghijklmnopqrstuvwxyz-'abcdefghijklmnopq\u2026'] tests/test_utils.py::test_truncate[input_value2-[0, tests/test_utils.py::test_unique_list[input_value0-output0] tests/test_utils.py::test_unique_list[input_value1-output1] tests/test_utils.py::test_unique_list[input_value2-output2] tests/test_utils.py::test_value_items tests/test_utils.py::test_value_items_merge[base0-override0-False-expected0] tests/test_utils.py::test_value_items_merge[None-None-False-None] tests/test_utils.py::test_value_items_merge[base2-override2-False-expected2] tests/test_utils.py::test_value_items_merge[base3-None-False-expected3] tests/test_utils.py::test_value_items_merge[None-override4-False-expected4] tests/test_utils.py::test_value_items_merge[None-override5-False-expected5] tests/test_utils.py::test_value_items_merge[base6-None-False-expected6] tests/test_utils.py::test_value_items_merge[base7-override7-False-expected7] tests/test_utils.py::test_value_items_merge[base8-override8-False-expected8] tests/test_utils.py::test_value_items_merge[base9-override9-False-expected9] tests/test_utils.py::test_value_items_merge[base10-override10-False-expected10] tests/test_utils.py::test_value_items_merge[base11-override11-False-expected11] tests/test_utils.py::test_value_items_merge[base12-override12-False-expected12] tests/test_utils.py::test_value_items_merge[base13-override13-False-expected13] tests/test_utils.py::test_value_items_merge[base14-override14-False-expected14] tests/test_utils.py::test_value_items_merge[base15-override15-False-expected15] tests/test_utils.py::test_value_items_merge[base16-override16-True-expected16] tests/test_utils.py::test_value_items_merge[None-None-True-None] tests/test_utils.py::test_value_items_merge[base18-override18-True-expected18] tests/test_utils.py::test_value_items_merge[base19-None-True-expected19] tests/test_utils.py::test_value_items_merge[None-override20-True-expected20] tests/test_utils.py::test_value_items_merge[None-override21-True-expected21] tests/test_utils.py::test_value_items_merge[base22-None-True-expected22] tests/test_utils.py::test_value_items_merge[base23-override23-True-expected23] tests/test_utils.py::test_value_items_merge[base24-override24-True-expected24] tests/test_utils.py::test_value_items_merge[base25-override25-True-expected25] tests/test_utils.py::test_value_items_merge[base26-override26-True-expected26] tests/test_utils.py::test_value_items_merge[base27-override27-True-expected27] tests/test_utils.py::test_value_items_merge[base28-override28-True-expected28] tests/test_utils.py::test_value_items_merge[base29-override29-True-expected29] tests/test_utils.py::test_value_items_merge[base30-override30-True-expected30] tests/test_utils.py::test_value_items_merge[base31-override31-True-expected31] tests/test_utils.py::test_value_items_merge[base32-True-False-True] tests/test_utils.py::test_value_items_merge[True-override33-False-expected33] tests/test_utils.py::test_value_items_merge[True-None-False-True] tests/test_utils.py::test_value_items_merge[base35-override35-False-expected35] tests/test_utils.py::test_value_items_error tests/test_utils.py::test_is_new_type tests/test_utils.py::test_new_type_supertype tests/test_utils.py::test_pretty tests/test_utils.py::test_pretty_color tests/test_utils.py::test_devtools_output tests/test_utils.py::test_devtools_output_validation_error tests/test_utils.py::test_deep_update[mapping0-updating_mapping0-expected_mapping0-extra tests/test_utils.py::test_deep_update[mapping1-updating_mapping1-expected_mapping1-values tests/test_utils.py::test_deep_update[mapping2-updating_mapping2-expected_mapping2-values tests/test_utils.py::test_deep_update[mapping3-updating_mapping3-expected_mapping3-deeply tests/test_utils.py::test_deep_update_is_not_mutating tests/test_utils.py::test_undefined_repr tests/test_utils.py::test_undefined_copy tests/test_utils.py::test_get_model tests/test_utils.py::test_version_info tests/test_utils.py::test_standard_version tests/test_utils.py::test_class_attribute tests/test_utils.py::test_all_literal_values tests/test_utils.py::test_path_type tests/test_utils.py::test_path_type_unknown tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[10] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[1.0] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[11] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[12] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[int] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[None] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[test_all_literal_values] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[len] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[obj8] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[<lambda>] tests/test_utils.py::test_smart_deepcopy_immutable_non_sequence[obj10] tests/test_utils.py::test_smart_deepcopy_empty_collection[empty_collection0] tests/test_utils.py::test_smart_deepcopy_empty_collection[empty_collection1] tests/test_utils.py::test_smart_deepcopy_empty_collection[empty_collection2] tests/test_utils.py::test_smart_deepcopy_empty_collection[empty_collection3] tests/test_utils.py::test_smart_deepcopy_empty_collection[empty_collection4] tests/test_utils.py::test_smart_deepcopy_empty_collection[empty_collection5] tests/test_utils.py::test_smart_deepcopy_empty_collection[empty_collection6] tests/test_utils.py::test_smart_deepcopy_empty_collection[empty_collection7] tests/test_utils.py::test_smart_deepcopy_collection[collection0] tests/test_utils.py::test_smart_deepcopy_collection[collection1] tests/test_utils.py::test_smart_deepcopy_collection[collection2] tests/test_utils.py::test_smart_deepcopy_collection[collection3] tests/test_utils.py::test_smart_deepcopy_collection[collection4] tests/test_utils.py::test_smart_deepcopy_collection[collection5] tests/test_utils.py::test_smart_deepcopy_collection[collection6] tests/test_utils.py::test_smart_deepcopy_collection[collection7] tests/test_utils.py::test_get_origin[input_value0-Annotated] tests/test_utils.py::test_get_origin[input_value1-Callable] tests/test_utils.py::test_get_origin[input_value2-dict] tests/test_utils.py::test_get_origin[input_value3-list] tests/test_utils.py::test_get_origin[input_value4-output_value4] tests/test_utils.py::test_get_origin[int-None] tests/test_utils.py::test_resolve_annotations_no_module tests/test_utils.py::test_all_identical tests/test_utils.py::test_undefined_pickle tests/test_utils.py::test_on_lower_camel_zero_length tests/test_utils.py::test_on_lower_camel_one_length tests/test_utils.py::test_on_lower_camel_many_length tests/test_utils.py::test_limited_dict